1## src/Makefile 2 3## -- User-modifiable variables -- ## 4srcdir = @srcdir@ 5top_srcdir = @top_srcdir@ 6subdir = src 7 8## == The code below shouldn't need to be touched at all == ## 9 10include ../Rules.mk 11 12## -- Private variables -- ## 13ALL_LDFLAGS = ${LDFLAGS} ${LIBS} 14 15INCLUDES = -I. -I${srcdir} -I${top_builddir} 16DEFINES = -DPATCHLEVEL=\"${PATCHLEVEL}\" -DSYSCONFDIR=\"${sysconfdir}\" \ 17 -D_GNU_SOURCE=1 -DPKGLIBDIR=\"${pkglibdir}\" -DHAVE_SYSTEM_H=1 \ 18 -DBUILTIN=1 19WFLAGS = @WFLAGS@ 20WFLAGS_GCC = -Wshadow -Wpointer-arith -Waggregate-return \ 21 -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual \ 22 -Wbad-function-cast -Wsign-compare -Wchar-subscripts \ 23 -Wcomment -Wformat -Wformat-nonliteral -Wformat-security \ 24 -Wimplicit -Wmain -Wmissing-braces -Wparentheses \ 25 -Wreturn-type -Wswitch \ 26 -Wmissing-noreturn -Wmissing-declarations @WFLAGS_3X@ 27WFLAGS_ICC = -Wall -wd193,279,810,869,1418,1419 28WFLAGS_3X = -Wsequence-point -Wdiv-by-zero -W -Wunused \ 29 -Wno-unused-parameter -Wno-unused-function 30ALL_CFLAGS = ${INCLUDES} ${DEFINES} ${WFLAGS} ${CFLAGS} @PCRE_CFLAGS@ 31 32LIBS = @PCRE_LIBS@ @LIBS@ 33 34SOURCES = ccze.c ccze-color.c ccze-plugin.c ccze-wordcolor.c \ 35 $(addprefix mod_,$(addsuffix .c, ${ALL_PLUGINS})) \ 36 ccze-dump.c ccze-cssdump.c ccze-compat.c 37HEADERS = ccze.h ccze-compat.h ccze-private.h 38ALL_PLUGINS = @ALL_PLUGINS@ 39S_PLUGINS = @S_PLUGINS@ 40SH_PLUGINS = $(filter-out ${S_PLUGINS},${ALL_PLUGINS}) 41PLUGIN_SHOBJS = $(addsuffix .so,${SH_PLUGINS}) 42PLUGIN_SOBJS = $(addsuffix .o,$(addprefix mod_,${S_PLUGINS})) 43PLUGIN_OBJS = ${PLUGIN_SHOBJS} ${PLUGIN_SOBJS} 44CLEANFILES = ccze-dump ccze-cssdump 45DISTCLEANFILES = ccze-builtins.c 46OBJECTS = ccze.o ccze-color.o ccze-plugin.o ccze-wordcolor.o \ 47 ccze-builtins.o ccze-compat.o 48 49## -- Standard targets -- ## 50all: ${PROGRAM} ${PLUGIN_SHOBJS} ccze-dump ccze-cssdump 51 52install: all 53 ${INSTALL} -d ${DESTDIR}${bindir} 54 ${INSTALL_PROGRAM} ${PROGRAM} ccze-cssdump ${DESTDIR}${bindir}/ 55 ${INSTALL} -d ${DESTDIR}${includedir} 56 ${INSTALL_DATA} ${srcdir}/ccze.h ${DESTDIR}${includedir} 57ifneq (${SH_PLUGINS},) 58 ${INSTALL} -d ${DESTDIR}${pkglibdir} 59 ${INSTALL_DATA} ${PLUGIN_SHOBJS} ${DESTDIR}${pkglibdir}/ 60endif 61 62install-strip: 63 ${MAKE} INSTALL_PROGRAM='${INSTALL_PROGRAM} -s' \ 64 INSTALL_DATA='${INSTALL_DATA} -s' install 65 66uninstall: 67 rm -f ${DESTDIR}${bindir}/${PROGRAM} \ 68 ${DESTDIR}${bindir}/ccze-cssdump \ 69 ${DESTDIR}${includedir}/ccze.h 70ifneq (${SH_PLUGINS},) 71 rm -f $(addprefix ${DESTDIR}${pkglibdir}/,${PLUGIN_SHOBJS}) 72endif 73 74## -- Specific targets -- ## 75${PROGRAM}: ${OBJECTS} ${PLUGIN_SOBJS} 76 ${CC} -rdynamic ${ALL_CFLAGS} -o $@ $^ ${ALL_LDFLAGS} 77ccze-dump ccze-cssdump: %: %.o ccze-compat.o ccze-color.c 78 ${CC} ${ALL_CFLAGS} -o $@ $@.o ccze-compat.o 79ccze-builtins.c: Makefile 80 echo '#include <ccze.h>' >$@ 81 echo '#include "ccze-private.h"' >>$@ 82 echo >>$@ 83ifneq (${S_PLUGINS},) 84 for p in ${S_PLUGINS}; do \ 85 echo "extern ccze_plugin_t ccze_$${p}_info;" >>$@; \ 86 done 87endif 88 echo "void" >>$@ 89 echo "ccze_plugin_load_all_builtins (void)" >>$@ 90 echo "{" >>$@ 91ifneq (${S_PLUGINS},) 92 for p in ${S_PLUGINS}; do \ 93 echo " ccze_plugin_add (&ccze_$${p}_info);" >>$@; \ 94 done 95endif 96 echo "}" >>$@ 97%.o: %.c ccze.h 98 ${CC} -c ${CPPFLAGS} ${ALL_CFLAGS} $< 99%.so: mod_%.c ccze.h 100 ${CC} -fPIC -DPIC ${ALL_CFLAGS} ${ALL_LDFLAGS} -o $@ $< -shared 101 102## -- Dependencies -- ## 103ccze.o: ccze.c ${top_builddir}/system.h ccze.h ccze-private.h \ 104 ${top_srcdir}/ChangeLog 105ccze-color.o: ccze-color.c ${top_builddir}/system.h ccze.h ccze-private.h 106ccze-plugin.o: ccze-plugin.c ${top_builddir}/system.h ccze.h ccze-private.h 107ccze-wordcolor.o: ccze-wordcolor.c ${top_builddir}/system.h ccze.h \ 108 ccze-private.h 109ccze-compat.o: ccze-compat.c ${top_builddir}/system.h ccze-compat.h \ 110 ccze.h 111${top_builddir}/system.h: ${top_builddir}/config.status 112