langpackedit: sorting fixes, 0.015 -- from 8f06f769
[wdl.git] / WDL / swell / Makefile
blobb433bbc5dc81a2afa0adaff70060be5528b371bf
1 # use make
2 # or make NOGDK=1
3 # or make DEBUG=1
4 # etc
6 ARCH := $(shell uname -m)
7 UNAME_S := $(shell uname -s)
9 ifeq ($(ARCH), aarch64)
10 ifeq ($(shell $(CC) -dumpmachine | cut -f 1 -d -), arm)
11 # helper for armv7l userspace on aarch64 cpu
12 ARCH := armv7l
13 endif
14 endif
16 PKG_CONFIG = pkg-config
18 COMPILER=GCC
20 CFLAGS = -pipe -fvisibility=hidden -fno-math-errno -fPIC -DPIC -Wall -Wshadow -Wno-unused-function -Wno-multichar -Wtype-limits -Wno-unused-value -fstrict-aliasing
22 CFLAGS += -DSWELL_MAKING_DYLIB
24 ifeq ($(UNAME_S),Darwin)
25 CFLAGS += -Wno-unused-private-field -DSWELL_FORCE_GENERIC
26 DLL_EXT=.dylib
27 COMPILER=CLANG
28 else
29 DLL_EXT=.so
30 CFLAGS += -D_FILE_OFFSET_BITS=64
31 endif
33 ifeq ($(COMPILER),CLANG)
34 CC = clang
35 CXX = clang++
36 endif
38 ifeq ($(COMPILER),ICC)
39 CC = icc
40 CXX = icpc
41 CFLAGS += -D__PURE_SYS_C99_HEADERS__
42 else
43 CFLAGS += -Wno-unused-result
44 endif
46 ifeq ($(COMPILER),GCC)
47 GCC_VER := $(shell $(CXX) --version|head -n 1| sed 's/.* \([0-9][0-9]*\)[.].*/\1/' )
48 GCC_GT_11 := $(shell [ "$(GCC_VER)" -gt 11 ] && echo true )
49 ifeq ($(GCC_GT_11),true)
50 # false positive in gcc 12/13
51 CFLAGS += -Wno-dangling-pointer
52 endif
53 endif
55 ifdef DISALLOW_WARNINGS
56 CFLAGS += -Werror
57 endif
58 ifndef DEPRECATED_WARNINGS
59 CFLAGS += -Wno-deprecated-declarations
60 endif
62 ifeq ($(ARCH),arm64)
63 CFLAGS += -fsigned-char
64 else
65 ifneq ($(filter arm%,$(ARCH)),)
66 CFLAGS += -fsigned-char -marm
67 endif
68 ifeq ($(ARCH),aarch64)
69 CFLAGS += -fsigned-char
70 endif
71 endif
74 ifdef DEBUG
75 CFLAGS += -O0 -g -D_DEBUG
76 else
77 CFLAGS += -O2 -DNDEBUG
78 ifdef DEBUG_INFO
79 CFLAGS += -g
80 else
81 ifneq ($(COMPILER),CLANG)
82 CFLAGS += -s
83 endif
84 endif
85 endif
87 LINKEXTRA = -lpthread -ldl
90 EXTRA_OBJS =
95 vpath %.cpp .. ../lice
97 SWELL_OBJS = swell.o swell-ini.o swell-miscdlg-generic.o swell-wnd-generic.o \
98 swell-menu-generic.o swell-kb-generic.o swell-dlg-generic.o \
99 swell-gdi-generic.o swell-misc-generic.o swell-gdi-lice.o \
100 swell-generic-headless.o swell-generic-gdk.o \
101 swell-appstub-generic.o swell-modstub-generic.o
103 LICE_OBJS = lice.o lice_arc.o lice_colorspace.o lice_line.o lice_text.o \
104 lice_textnew.o lice_ico.o lice_bmp.o
106 OBJS = $(SWELL_OBJS)
108 ifndef NOGDK
109 ifdef GDK2
110 CFLAGS += -DSWELL_TARGET_GDK=2 $(shell $(PKG_CONFIG) --cflags gdk-2.0)
111 ifndef PRELOAD_GDK
112 LINKEXTRA += $(shell $(PKG_CONFIG) --libs gdk-2.0)
113 else
114 LINKEXTRA += -lX11 -lXi
115 CFLAGS += -DSWELL_PRELOAD="libgdk-x11-2.0.so.0"
116 endif
117 else
118 ifdef SWELL_SUPPORT_GTK
119 CFLAGS += -DSWELL_TARGET_GDK=3 $(shell $(PKG_CONFIG) --cflags gtk+-3.0) -DSWELL_SUPPORT_GTK
120 else
121 CFLAGS += -DSWELL_TARGET_GDK=3 $(shell $(PKG_CONFIG) --cflags gdk-3.0)
122 endif
123 ifndef PRELOAD_GDK
124 ifdef SWELL_SUPPORT_GTK
125 LINKEXTRA += $(shell $(PKG_CONFIG) --libs gtk+-3.0)
126 else
127 LINKEXTRA += $(shell $(PKG_CONFIG) --libs gdk-3.0)
128 endif
129 else
130 LINKEXTRA += -lX11 -lXi
131 ifdef SWELL_SUPPORT_GTK
132 CFLAGS += -DSWELL_PRELOAD="libgtk+-3.so.0"
133 else
134 CFLAGS += -DSWELL_PRELOAD="libgdk-3.so.0"
135 endif
136 endif
137 endif
138 CFLAGS += -DSWELL_LICE_GDI
139 OBJS += $(LICE_OBJS)
141 ifndef NOFREETYPE
142 CFLAGS += -DSWELL_FREETYPE $(shell $(PKG_CONFIG) --cflags freetype2)
143 ifndef PRELOAD_GDK
144 LINKEXTRA += $(shell $(PKG_CONFIG) --libs freetype2)
145 endif
146 ifndef NOFONTCONFIG
147 CFLAGS += -DSWELL_FONTCONFIG
148 LINKEXTRA += -lfontconfig
149 endif
150 endif
151 LINKEXTRA += -lGL
152 ifdef PRELOAD_GDK
153 CFLAGS += -Wl,-z,lazy
154 endif
155 endif
157 CXXFLAGS = $(CFLAGS)
159 default: libSwell$(DLL_EXT)
161 .PHONY: clean
163 SWELL_HEADERS=swell-dlggen.h swell-gdi-internalpool.h swell-menugen.h swell-types.h swell-functions.h swell-internal.h
165 swell.o: $(SWELL_HEADERS)
166 swell-ini.o: $(SWELL_HEADERS)
167 swell-wnd-generic.o: $(SWELL_HEADERS)
168 swell-dlg-generic.o: $(SWELL_HEADERS)
169 swell-menu-generic.o: $(SWELL_HEADERS)
170 swell-misc-generic.o: $(SWELL_HEADERS)
171 swell-gdi-generic.o: $(SWELL_HEADERS)
172 swell-gdi-lice.o: $(SWELL_HEADERS)
173 swell-kb-generic.o: $(SWELL_HEADERS)
174 swell-miscdlg-generic.o: $(SWELL_HEADERS)
175 swell-modstub-generic.o: $(SWELL_HEADERS)
176 swell-appstub-generic.o: $(SWELL_HEADERS)
178 libSwell$(DLL_EXT): $(OBJS)
179 $(CXX) -shared -o $@ $(CFLAGS) $(LFLAGS) $^ $(LINKEXTRA)
181 test: $(OBJS) test.o
182 $(CXX) -o test $(CFLAGS) $(LFLAGS) $^ $(LINKEXTRA)
184 libSwell.colortheme: swell-gdi-generic.cpp $(SWELL_HEADERS)
185 $(CXX) $(CFLAGS) -o make-theme -DSWELL__MAKE_THEME swell-gdi-generic.cpp -lpthread
186 ./make-theme > libSwell.colortheme
188 clean:
189 -rm -f -- $(OBJS) libSwell$(DLL_EXT) make-theme libSwell.colortheme