/
Makefile.lib.linux
71 lines (50 loc) · 1.49 KB
/
Makefile.lib.linux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Linux makefile for FreeImage
# This file can be generated by ./gensrclist.sh
include Makefile.srcs
# General configuration variables:
DISTDIR ?= Dist
INCDIR = Source
# Converts cr/lf to just lf
DOS2UNIX = dos2unix
LIBRARIES = -lstdc++
MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -D__ANSI__ -DPLATFORMANSI -DNO_LCMS -DDISABLE_PERF_MEASUREMENT
CFLAGS += $(INCLUDE)
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -D__ANSI__ -DPLATFORMANSI -DNO_LCMS -DDISABLE_PERF_MEASUREMENT -Wno-ctor-dtor-privacy
CXXFLAGS += $(INCLUDE)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif
TARGET = freeimage
STATICLIB = lib$(TARGET).a
SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
LIBNAME = lib$(TARGET).so
VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
HEADER = Source/FreeImage.h
# Define the copy command.
CP = cp
# Define the mkdir command.
MD = mkdir
# Define the remove command.
RM = rm
default: all
all: dist
dist: FreeImage
$(MD) $(DISTDIR)
$(CP) *.a $(DISTDIR)
$(CP) Source/FreeImage.h $(DISTDIR)
dos2unix:
@$(DOS2UNIX) $(SRCS) $(INCLS)
FreeImage: $(STATICLIB)
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
.cpp.o:
$(CXX) $(CXXFLAGS) -c $< -o $@
$(STATICLIB): $(MODULES)
$(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES)
$(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
clean:
$(RM) -f core $(DISTDIR)/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)