Files
tlib/oversampling/WDL/swell/Makefile
2024-05-24 13:28:31 +02:00

181 lines
4.2 KiB
Makefile

# use make
# or make NOGDK=1
# or make DEBUG=1
# etc
ARCH := $(shell uname -m)
UNAME_S := $(shell uname -s)
ifeq ($(ARCH), aarch64)
ifeq ($(shell $(CC) -dumpmachine | cut -f 1 -d -), arm)
# helper for armv7l userspace on aarch64 cpu
ARCH := armv7l
endif
endif
PKG_CONFIG = pkg-config
COMPILER=GCC
CFLAGS = -pipe -fvisibility=hidden -fno-math-errno -fPIC -DPIC -Wall -Wshadow -Wno-unused-function -Wno-multichar -Wtype-limits
CFLAGS += -DSWELL_MAKING_DYLIB
ifeq ($(UNAME_S),Darwin)
CFLAGS += -Wno-unused-private-field -DSWELL_FORCE_GENERIC
DLL_EXT=.dylib
COMPILER=CLANG
else
DLL_EXT=.so
CFLAGS += -D_FILE_OFFSET_BITS=64
endif
ifeq ($(COMPILER),CLANG)
CC = clang
CXX = clang++
endif
ifeq ($(COMPILER),ICC)
CC = icc
CXX = icpc
CFLAGS += -D__PURE_SYS_C99_HEADERS__
else
CFLAGS += -Wno-unused-result
endif
ifndef ALLOW_WARNINGS
CFLAGS += -Werror
endif
ifndef DEPRECATED_WARNINGS
CFLAGS += -Wno-deprecated-declarations
endif
ifeq ($(ARCH),arm64)
CFLAGS += -fsigned-char
else
ifneq ($(filter arm%,$(ARCH)),)
CFLAGS += -fsigned-char -marm
endif
ifeq ($(ARCH),aarch64)
CFLAGS += -fsigned-char
endif
endif
ifdef DEBUG
CFLAGS += -O0 -g -D_DEBUG
else
CFLAGS += -O2 -DNDEBUG
ifdef DEBUG_INFO
CFLAGS += -g
else
ifneq ($(COMPILER),CLANG)
CFLAGS += -s
endif
endif
endif
LINKEXTRA = -lpthread -ldl
EXTRA_OBJS =
vpath %.cpp .. ../lice
SWELL_OBJS = swell.o swell-ini.o swell-miscdlg-generic.o swell-wnd-generic.o \
swell-menu-generic.o swell-kb-generic.o swell-dlg-generic.o \
swell-gdi-generic.o swell-misc-generic.o swell-gdi-lice.o \
swell-generic-headless.o swell-generic-gdk.o \
swell-appstub-generic.o swell-modstub-generic.o
LICE_OBJS = lice.o lice_arc.o lice_colorspace.o lice_line.o lice_text.o \
lice_textnew.o lice_ico.o lice_bmp.o
OBJS = $(SWELL_OBJS)
ifndef NOGDK
ifdef GDK2
CFLAGS += -DSWELL_TARGET_GDK=2 $(shell $(PKG_CONFIG) --cflags gdk-2.0)
ifndef PRELOAD_GDK
LINKEXTRA += $(shell $(PKG_CONFIG) --libs gdk-2.0)
else
LINKEXTRA += -lX11 -lXi
CFLAGS += -DSWELL_PRELOAD="libgdk-x11-2.0.so.0"
endif
else
ifdef SWELL_SUPPORT_GTK
CFLAGS += -DSWELL_TARGET_GDK=3 $(shell $(PKG_CONFIG) --cflags gtk+-3.0) -DSWELL_SUPPORT_GTK
else
CFLAGS += -DSWELL_TARGET_GDK=3 $(shell $(PKG_CONFIG) --cflags gdk-3.0)
endif
ifndef PRELOAD_GDK
ifdef SWELL_SUPPORT_GTK
LINKEXTRA += $(shell $(PKG_CONFIG) --libs gtk+-3.0)
else
LINKEXTRA += $(shell $(PKG_CONFIG) --libs gdk-3.0)
endif
else
LINKEXTRA += -lX11 -lXi
ifdef SWELL_SUPPORT_GTK
CFLAGS += -DSWELL_PRELOAD="libgtk+-3.so.0"
else
CFLAGS += -DSWELL_PRELOAD="libgdk-3.so.0"
endif
endif
endif
CFLAGS += -DSWELL_LICE_GDI
OBJS += $(LICE_OBJS)
ifndef NOFREETYPE
CFLAGS += -DSWELL_FREETYPE $(shell $(PKG_CONFIG) --cflags freetype2)
ifndef PRELOAD_GDK
LINKEXTRA += $(shell $(PKG_CONFIG) --libs freetype2)
endif
ifndef NOFONTCONFIG
CFLAGS += -DSWELL_FONTCONFIG
LINKEXTRA += -lfontconfig
endif
endif
LINKEXTRA += -lGL
ifdef PRELOAD_GDK
CFLAGS += -Wl,-z,lazy
endif
endif
CXXFLAGS = $(CFLAGS)
default: libSwell$(DLL_EXT)
.PHONY: clean
SWELL_HEADERS=swell-dlggen.h swell-gdi-internalpool.h swell-menugen.h swell-types.h swell-functions.h swell-internal.h
swell.o: $(SWELL_HEADERS)
swell-ini.o: $(SWELL_HEADERS)
swell-wnd-generic.o: $(SWELL_HEADERS)
swell-dlg-generic.o: $(SWELL_HEADERS)
swell-menu-generic.o: $(SWELL_HEADERS)
swell-misc-generic.o: $(SWELL_HEADERS)
swell-gdi-generic.o: $(SWELL_HEADERS)
swell-gdi-lice.o: $(SWELL_HEADERS)
swell-kb-generic.o: $(SWELL_HEADERS)
swell-miscdlg-generic.o: $(SWELL_HEADERS)
swell-modstub-generic.o: $(SWELL_HEADERS)
swell-appstub-generic.o: $(SWELL_HEADERS)
libSwell$(DLL_EXT): $(OBJS)
$(CXX) -shared -o $@ $(CFLAGS) $(LFLAGS) $^ $(LINKEXTRA)
test: $(OBJS) test.o
$(CXX) -o test $(CFLAGS) $(LFLAGS) $^ $(LINKEXTRA)
libSwell.colortheme: swell-gdi-generic.cpp $(SWELL_HEADERS)
$(CXX) $(CFLAGS) -o make-theme -DSWELL__MAKE_THEME swell-gdi-generic.cpp -lpthread
./make-theme > libSwell.colortheme
clean:
-rm -f -- $(OBJS) libSwell$(DLL_EXT) make-theme libSwell.colortheme