1
2include ../Makefile.inc
3
4ifdef APWAL_DEBUG
5CFLAGS=-g -Wall -Werror `pkg-config --cflags gtk+-2.0 gthread-2.0` -DGTK_DISABLE_DEPRECATED -DAPWAL_DEBUG
6LDFLAGS=`pkg-config --libs gtk+-2.0 gthread-2.0` `xml2-config --libs`
7else
8CFLAGS+=`pkg-config --cflags gtk+-2.0 gthread-2.0`
9LDFLAGS+=`pkg-config --libs gtk+-2.0 gthread-2.0` `xml2-config --libs`
10endif
11
12OBJS=main.o app.o launcher.o editor.o property.o \
13     gtkstuff.o sysstuff.o iconsel.o cereimg.o \
14     apwalapp.o iconsel_interface.o filesel.o xmlrc.o iconlist.o log.o about.o \
15     apwalpref.o splash.o gtkfnmatch.o
16INCS=app.h launcher.h editor.h property.h gtkstuff.h sysstuff.h \
17     iconsel.h cereimg.h apwalapp.h \
18     iconsel_private.h filesel.h xmlrc.h common.h iconlist.h log.h about.h \
19     apwalpref.h splash.h gtkfnmatch.h
20
21.SUFFIXES: .png .c
22
23
24ifdef APWAL_DEBUG
25all: checktraceformat apwal tags
26apwal: $(OBJS)
27	$(CC) -o $@ $^ $(LDFLAGS)
28else
29all: apwal
30apwal: $(OBJS)
31	$(CC) -o $@ $^ $(LDFLAGS)
32	strip $@
33endif
34
35install: all
36	cp apwal /usr/local/bin/
37	ln -sf /usr/local/bin/apwal /usr/local/bin/apwal-editor
38
39.c.o: $(INCS)
40	$(CC) -c $< -o $*.o $(CFLAGS)
41
42xmlrc.o: xmlrc.c $(INCS)
43	$(CC) -c $< -o $*.o $(CFLAGS) `xml2-config --cflags`
44about.o: about.c $(INCS) ../Makefile.inc
45	$(CC) -c $< -o $*.o $(CFLAGS) -DAPWAL_VERSION=\"$(VERS)\"
46
47gtkstuff.o: pixbufinline.inc
48xmlrc.o: xmlrcinline.inc
49
50$(OBJS): $(INCS)
51
52xmlrcinline.inc: ../example/apwalrc.xml
53	@echo "generating $@..."
54	@if [ -f $@ ]; then rm -f $@; fi;
55	@echo > $@
56	@echo -n "#define XMLRC_DEFAULT \"" >> $@
57	@cat ../example/apwalrc.xml | awk ' \
58	  BEGIN { ORS="\\n"; } \
59	  { gsub("\"","\\\""); \
60	    print; \
61	  }'>> $@
62	@echo "\"" >> $@
63	@echo >> $@
64
65
66pixbufinline.inc: ../pixmaps/*.png
67	@echo "generating $@..."
68	@list2build=$$( \
69	   for f in ../pixmaps/*.png;do echo "`basename $$f .png` $$f ";done); \
70	if [ -f $@ ]; then rm -f $@; fi; \
71	gdk-pixbuf-csource --raw --build-list $$list2build > $@; \
72	echo >> $@ ; echo "pixbufinline_t pixbufinline[] =" >> $@; \
73	echo "{" >> $@; \
74	for f in ../pixmaps/*.png;do \
75	  echo "  {" >> $@; \
76	  echo "    \"`basename $$f .png`\"," >> $@; \
77	  echo "    sizeof(`basename $$f .png`)," >> $@; \
78	  echo "    (guint8 *) & `basename $$f .png`" >> $@; \
79	  echo "  }," >> $@; \
80	done; \
81	echo "};" >> $@; \
82	echo -n "gint pixbufinline_count = (sizeof(pixbufinline) / " >> $@; \
83	echo                               "sizeof(pixbufinline_t));" >> $@; \
84	echo "" >> $@;
85
86tags: $(INCS) $(OBJS:.o=.c)
87	ctags -R
88
89checktraceformat:
90	@(fmterr=`find . -name "*.c" | xargs grep -nH '\(TRACE\|WARN\|ERR\)[ \t]*([ \t]*"[^%]*"'`; \
91	if [ ! -z "$$fmterr" ]; then \
92	echo "*** gcc on OpenBSD does not allow marcos with args... ending by a ','." ; \
93	echo '*** To avoid this problem with the log macros, TRACE("") has to' ; \
94	echo '*** be replaced by TRACE("%s", "") for example. Format problem in:' ; \
95	echo "$$fmterr" ; \
96	exit 1; fi; )
97
98
99clean:
100	-rm -f $(OBJS) apwal pixbufinline.inc xmlrcinline.inc tags
101
102