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
16 PKG_CONFIG
= pkg-config
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
30 CFLAGS
+= -D_FILE_OFFSET_BITS
=64
33 ifeq ($(COMPILER
),CLANG
)
38 ifeq ($(COMPILER
),ICC
)
41 CFLAGS
+= -D__PURE_SYS_C99_HEADERS__
43 CFLAGS
+= -Wno-unused-result
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
55 ifdef DISALLOW_WARNINGS
58 ifndef DEPRECATED_WARNINGS
59 CFLAGS
+= -Wno-deprecated-declarations
63 CFLAGS
+= -fsigned-char
65 ifneq ($(filter arm
%,$(ARCH
)),)
66 CFLAGS
+= -fsigned-char
-marm
68 ifeq ($(ARCH
),aarch64
)
69 CFLAGS
+= -fsigned-char
75 CFLAGS
+= -O0
-g
-D_DEBUG
77 CFLAGS
+= -O2
-DNDEBUG
81 ifneq ($(COMPILER
),CLANG
)
87 LINKEXTRA
= -lpthread
-ldl
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
110 CFLAGS
+= -DSWELL_TARGET_GDK
=2 $(shell $(PKG_CONFIG
) --cflags gdk-2.0
)
112 LINKEXTRA
+= $(shell $(PKG_CONFIG
) --libs gdk-2.0
)
114 LINKEXTRA
+= -lX11
-lXi
115 CFLAGS
+= -DSWELL_PRELOAD
="libgdk-x11-2.0.so.0"
118 ifdef SWELL_SUPPORT_GTK
119 CFLAGS
+= -DSWELL_TARGET_GDK
=3 $(shell $(PKG_CONFIG
) --cflags gtk
+-3.0) -DSWELL_SUPPORT_GTK
121 CFLAGS
+= -DSWELL_TARGET_GDK
=3 $(shell $(PKG_CONFIG
) --cflags gdk-3.0
)
124 ifdef SWELL_SUPPORT_GTK
125 LINKEXTRA
+= $(shell $(PKG_CONFIG
) --libs gtk
+-3.0)
127 LINKEXTRA
+= $(shell $(PKG_CONFIG
) --libs gdk-3.0
)
130 LINKEXTRA
+= -lX11
-lXi
131 ifdef SWELL_SUPPORT_GTK
132 CFLAGS
+= -DSWELL_PRELOAD
="libgtk+-3.so.0"
134 CFLAGS
+= -DSWELL_PRELOAD
="libgdk-3.so.0"
138 CFLAGS
+= -DSWELL_LICE_GDI
142 CFLAGS
+= -DSWELL_FREETYPE
$(shell $(PKG_CONFIG
) --cflags freetype2
)
144 LINKEXTRA
+= $(shell $(PKG_CONFIG
) --libs freetype2
)
147 CFLAGS
+= -DSWELL_FONTCONFIG
148 LINKEXTRA
+= -lfontconfig
153 CFLAGS
+= -Wl
,-z
,lazy
159 default
: libSwell
$(DLL_EXT
)
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
)
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
189 -rm -f
-- $(OBJS
) libSwell
$(DLL_EXT
) make-theme libSwell.colortheme