# many warnings about trivial stuff
# CPPFLAGS += -Wconversion
+LDFLAGS += -Wl,--gc-sections
+
CPPFLAGS += -Os
CPPFLAGS += -Wall
CPPFLAGS += -Wuninitialized
CPPFLAGS += -Wunused-macros
CPPFLAGS += -Wshadow
CPPFLAGS += -Wbad-function-cast
+CPPFLAGS += -fdata-sections -ffunction-sections
+CPPFLAGS += -DMAIN_INPUT_FILE_IS_$(*F)
+CPPFLAGS += @SSL_CPPFLAGS@
+CPPFLAGS += @ncurses_cppflags@
-BINARIES = para_server para_client para_gui para_audioc para_recv \
+BINARIES = para_server para_client para_audioc para_recv \
para_filter para_write para_fsck @extra_binaries@
man_binaries := $(filter-out para_dbadm para_slider para_krell.so, $(BINARIES))
man_pages := $(patsubst %, man/man1/%.1, $(man_binaries))
%.cmdline.o: %.cmdline.c
$(CC) -c $(CPPFLAGS) $<
+
%.o: %.c
$(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) $<
para_recv: @recv_objs@
- $(CC) @recv_objs@ -o $@ @recv_ldflags@
+ $(CC) $(LDFLAGS) @recv_objs@ -o $@ @recv_ldflags@
para_filter: @filter_objs@
- $(CC) @filter_objs@ -o $@ @filter_ldflags@
+ $(CC) $(LDFLAGS) @filter_objs@ -o $@ @filter_ldflags@
para_slider: $(slider_objs)
- $(CC) $(slider_objs) -o $@ @GTK_LIBS@ @GLIB_LIBS@ -lzmw
+ $(CC) $(LDFLAGS) $(slider_objs) -o $@ @GTK_LIBS@ @GLIB_LIBS@ -lzmw
para_client: @client_objs@
- $(CC) -o $@ @client_objs@ @client_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @client_objs@ @client_ldflags@
para_gui: @gui_objs@
- $(CC) -o $@ @gui_objs@ -lncurses
+ $(CC) $(LDFLAGS) -o $@ @gui_objs@ -lncurses
para_audiod: @audiod_objs@
- $(CC) -o $@ @audiod_objs@ @audiod_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @audiod_objs@ @audiod_ldflags@
para_audioc: @audioc_objs@
- $(CC) -o $@ @audioc_objs@
+ $(CC) $(LDFLAGS) -o $@ @audioc_objs@ @audioc_ldflags@
para_dbadm: $(dbadm_objs)
- $(CC) -o $@ $(dbadm_objs) -lncurses -lmenu
+ $(CC) $(LDFLAGS) -o $@ $(dbadm_objs) -lncurses -lmenu
para_fade: $(fade_objs)
- $(CC) -o $@ $(fade_objs)
+ $(CC) $(LDFLAGS) -o $@ $(fade_objs)
para_server: @server_objs@
- $(CC) -o $@ @server_objs@ @server_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @server_objs@ @server_ldflags@
para_fsck: @fsck_objs@
- $(CC) -o $@ @fsck_objs@ @fsck_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @fsck_objs@ @fsck_ldflags@
para_sdl_gui: $(sdl_gui_objs)
- $(CC) -o $@ $(sdl_gui_objs) -lSDL_image
+ $(CC) $(LDFLAGS) -o $@ $(sdl_gui_objs) -lSDL_image
para_write: @write_objs@
- $(CC) -o $@ @write_objs@ @write_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @write_objs@ @write_ldflags@
para_krell.so: $(krell_objs)
$(CC) -Wall -fPIC @GTK_CFLAGS@ krell.o -o $@ @GTK_LIBS@ -shared