JD2022-TU1/main/extern/FreeImage/Makefile.mingw

123 lines
3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MinGW makefile for FreeImage
# This file can be generated by ./gensrclist.sh
include Makefile.srcs
# General configuration variables:
DESTDIR ?= $(SystemRoot)
INSTALLDIR ?= $(DESTDIR)/system32
DISTDIR ?= Dist
SRCDIR ?= Source
HEADER = FreeImage.h
RCFILE = FreeImage.rc
# Uncomment this variable to make a static library. This may
# also be specified as an environment variable and can hold
# any of STATIC and SHARED and must be in uppercase letters.
# Default: SHARED
#FREEIMAGE_LIBRARY_TYPE = STATIC
# Redefine the compiler (CC defaults to ´cc´ for MinGW's make, however
# there's only ´gcc´ available with MinGW)
CC = gcc
# Redefine the linker (we use ´g++´ for linking, since MinGW's ´ld´ comes with
# wrong (Linux) standard library search paths)
LD = g++
#Define the dlltool
DLLTOOL = dlltool
#Define the resource compiler
RC = windres
# Define the copy command
CP = cp
# Define the mkdir command
MD = mkdir
# Define additional libraries needed:
# libstdc++ is included by default with MinGW, however for
# WIN32 based builds, LibRawLite needs the winsock libraries.
LIBRARIES = -lwsock32 -lws2_32
# Define some additional symboles only needed for WIN32 based builds:
WIN32_CFLAGS = $(LIB_TYPE_FLAGS) -DOPJ_STATIC
WIN32_CXXFLAGS = $(WIN32_CFLAGS) -DLIBRAW_NODLL -DLIBRAW_LIBRARY_BUILD
WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
RESOURCE = $(RCFILE:.rc=.coff)
CFLAGS ?= -O3 -fexceptions -DNDEBUG $(WIN32_CFLAGS)
CFLAGS += $(INCLUDE)
CXXFLAGS ?= -O3 -fexceptions -Wno-ctor-dtor-privacy -DNDEBUG $(WIN32_CXXFLAGS) -DNO_LCMS
CXXFLAGS += $(INCLUDE)
RCFLAGS ?= -DNDEBUG
LDFLAGS = -s -shared -static -Wl,-soname,$(SOLIBNAME)
DLLTOOLFLAGS = --add-stdcall-underscore
TARGET = FreeImage
STATICLIB = $(TARGET).a
SHAREDLIB = $(TARGET).dll
IMPORTLIB = $(TARGET).lib
EXPORTLIB = $(TARGET).exp
SOLIBNAME = $(SHAREDLIB).$(VER_MAJOR)
DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
# The FreeImage library type defaults to SHARED
FREEIMAGE_LIBRARY_TYPE ?= SHARED
TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
LIB_TYPE_FLAGS = $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
default: all
all: mkdist
rebuild: clean all
mkdist: FreeImage $(TARGETDIST)
FreeImage: $(TARGETLIB)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
%.coff: %.rc
$(RC) $(RCFLAGS) -o $@ $<
$(DISTDIR)/%: %
$(CP) $< $@
$(DISTDIR)/%: $(SRCDIR)/%
$(CP) $< $@
$(STATICLIB): $(MODULES)
$(AR) rs $@ $(MODULES)
$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
$(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
$(LD) $(LDFLAGS) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LIBRARIES)
$(DISTDIR):
$(MD) $(DISTDIR)
$(TARGETDIST): $(DISTDIR)
install:
$(CP) $(SHAREDLIB) $(INSTALLDIR)
clean:
$(RM) core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)