diff --git a/src/Makefile.am b/src/Makefile.am
index ff4fb7aa9926970663e85bfcf88f176ba6b492f8..085396db14703c4270d4c984c03ee6187c8671bb 100644 (file)
--- a/src/Makefile.am
+++ b/src/Makefile.am
-#
-# $Id$
-#
+CLEANFILES = ncmpc-tiny
+
+AM_CPPFLAGS = \
+ $(GLIB_CFLAGS)\
+ $(GTHREAD_CFLAGS)\
+ $(LIBLIRCCLIENT_CFLAGS) \
+ -DLOCALE_DIR=\""$(datadir)/locale"\"\
+ -DSYSCONFDIR=\""$(sysconfdir)"\"
+
+ncmpc_LDADD = \
+ $(GLIB_LIBS)\
+ $(GTHREAD_LIBS) \
+ $(LIBLIRCCLIENT_LIBS)
+
+ncmpc_headers = \
+ libmpdclient.h\
+ resolver.h \
+ song.h \
+ mpdclient.h\
+ playlist.h \
+ filelist.h \
+ options.h\
+ conf.h\
+ command.h\
+ ncu.h \
+ screen.h\
+ screen_list.h \
+ screen_play.h \
+ screen_utils.h\
+ list_window.h\
+ colors.h\
+ hscroll.h \
+ charset.h \
+ match.h \
+ wreadln.h\
+ strfsong.h\
+ utils.h\
+ ncmpc.h\
+ defaults.h \
+ i18n.h \
+ screen_browser.h \
+ screen_text.h \
+ plugin.h \
+ lyrics.h \
+ str_pool.h \
+ lirc.h
bin_PROGRAMS = ncmpc
-ncmpc_LDADD = $(GLIB_LIBS)
+lyr_src=${lyr_src_fixed}
+
+ncmpc_SOURCES = \
+ libmpdclient.c\
+ resolver.c \
+ song.c \
+ main.c\
+ mpdclient.c\
+ playlist.c \
+ filelist.c \
+ options.c\
+ command.c\
+ ncu.c \
+ screen.c\
+ screen_list.c \
+ screen_utils.c\
+ screen_play.c\
+ screen_browser.c\
+ screen_file.c\
+ list_window.c\
+ colors.c\
+ charset.c \
+ wreadln.c\
+ strfsong.c\
+ utils.c\
+ str_pool.c
+
+if NCMPC_MINI
+else
+ncmpc_SOURCES += \
+ hscroll.c \
+ match.c \
+ conf.c
+endif
-AM_CPPFLAGS = $(GLIB_CFLAGS) -DLOCALE_DIR=\""$(datadir)/locale"\" -DSYSCONFDIR=\""$(sysconfdir)"\"
+if ENABLE_HELP_SCREEN
+ncmpc_SOURCES += screen_help.c
+endif
+if ENABLE_ARTIST_SCREEN
+ncmpc_SOURCES += screen_artist.c
+endif
-ncmpc_headers = libmpdclient.h mpc.h options.h conf.h command.h screen.h \
- screen_utils.h screen_play.h screen_file.h screen_search.h \
- screen_help.h list_window.h colors.h support.h wreadln.h \
- ncmpc.h
+if ENABLE_SEARCH_SCREEN
+ncmpc_SOURCES += screen_search.c
+endif
-ncmpc_SOURCES = libmpdclient.c main.c mpc.c options.c conf.c command.c \
- screen.c screen_utils.c screen_play.c screen_file.c \
- screen_search.c screen_help.c screen_keydef.c \
- list_window.c colors.c support.c wreadln.c $(ncmpc_headers)
+if ENABLE_SONG_SCREEN
+ncmpc_SOURCES += screen_song.c
+endif
+if ENABLE_KEYDEF_SCREEN
+ncmpc_SOURCES += screen_keydef.c
+endif
+if ENABLE_PLUGIN_LIBRARY
+ncmpc_SOURCES += plugin.c
+endif
+if ENABLE_SCREEN_TEXT
+ncmpc_SOURCES += screen_text.c
+endif
+if ENABLE_LYRICS_SCREEN
+ncmpc_SOURCES += screen_lyrics.c lyrics.c
+endif
+
+if ENABLE_OUTPUTS_SCREEN
+ncmpc_SOURCES += screen_outputs.c
+endif
+
+if ENABLE_LIRC
+ncmpc_SOURCES += lirc.c
+endif
+
+ncmpc_SOURCES+=${ncmpc_headers}
+
+# build the smalles possible ncmpc binary
+ncmpc-tiny: $(filter-out %.h,$(ncmpc_SOURCES))
+ $(COMPILE) --combine -fwhole-program $(ncmpc_LDFLAGS) $(ncmpc_LDADD) $(LIBS) $^ -o $@
+ strip --strip-all $@
+
+#
+# sparse
+#
+SPARSE = sparse
+SPARSE_FLAGS = -Wdecl -Wdefault-bitfield-sign -Wdo-while -Wenum-mismatch \
+ -Wnon-pointer-null -Wptr-subtraction-blows -Wreturn-void \
+ -Wshadow -Wtypesign \
+ -D__transparent_union__=unused
+sparse-check:
+ for i in $(ncmpc_SOURCES); \
+ do \
+ $(SPARSE) -I. -I.. -I/usr/lib/gcc/$(shell gcc -dumpmachine)/4.3/include -I/usr/lib/gcc/$(shell gcc -dumpmachine)/4.3/include-fixed $(AM_CPPFLAGS) $(SPARSE_FLAGS) $(srcdir)/$$i || exit; \
+ done