-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
75 lines (54 loc) · 2.1 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
SOURCES = $(wildcard *.lzz)
STANDALONE_HEADERS = common.h
OBJECTS = $(patsubst %.lzz,%.o,$(SOURCES)) $(patsubst %.lzz,%.moc.o,$(SOURCES))
GENERATED_C = $(patsubst %.lzz,%.cpp,$(SOURCES))
GENERATED_H = $(patsubst %.lzz,%.h,$(SOURCES)) predeclares.h common_gen.h
GENERATED_MOC = $(patsubst %.lzz,%.moc.cpp,$(SOURCES))
HEADERS = $(GENERATED_H) $(STANDALONE_HEADERS)
LZZFLAGS=-Igc-7.2/include -I/usr/include `pkg-config --cflags QtGui`
CXXFLAGS+=$(LZZFLAGS) # -g
LDFLAGS+=`pkg-config --libs QtGui`
LZZHOME = lzz_2_8_2_src_gen
LZZ = build_tools/lzz
PREPEND = build_tools/prepend.pl
PREDECL = build_tools/predeclares.pl
REPLDIF = build_tools/replace_if_different.sh
LZZDEPS = build_tools/lzz_deps.pl
LZZINLN = build_tools/lzz_inline.pl
LZZPREP = build_tools/lzz_preproc.pl
all: app $(GENERATED_H) $(GENERATED_C) $(GENERATED_MOC) TAGS
$(LZZ): $(LZZHOME)/lazycpp
cp $(LZZHOME)/lazycpp $(LZZ)
$(LZZHOME)/lazycpp:
cd lzz_2_8_2_src_gen ; make -f Makefile.release
libgc.a: gc-7.2/.libs/libgc.a
cp gc-7.2/.libs/libgc.a libgc.a
gc-7.2/.libs/libgc.a:
cd gc-7.2 ; ./configure --enable-cplusplus --enable-parallel-mark ; make
%.P : %.lzz
$(LZZDEPS) $< $@
include $(SOURCES:.lzz=.P)
predeclares.h: $(SOURCES)
@echo "Creating predeclares.h" ;\
$(PREDECL) > pre_temp.h ;\
$(REPLDIF) predeclares.h pre_temp.h ;\
rm -f pre_temp.h
common_gen.h: common.h predeclares.h
@echo "Creating common_gen.h" ;\
cat common.h predeclares.h > common_gen.h
%.cpp %.h : %.lzz common_gen.h $(LZZ)
@echo "Preprocessing $(patsubst %.lzz,%,$<)" ;\
$(LZZ) $< $(CZZFLAGS) -hd -sd -hl -sl -c -DCOMMON_H ;\
$(PREPEND) $(patsubst %.lzz,%.h,$<) '#include "common_gen.h"' ;\
$(LZZINLN) $(patsubst %.lzz,%.h,$<)
%.moc.cpp : %.h
moc $< -o $@
%.o : %.cpp
$(CXX) -c $< $(CXXFLAGS)
app: $(OBJECTS) main.cpp libgc.a
$(CXX) -o $@ main.cpp $(CXXFLAGS) $(OBJECTS) libgc.a $(LDFLAGS)
clean:
rm -f app *.o $(GENERATED_C) $(GENERATED_H) $(GENERATED_MOC) $(LZZ) libgc.a *.P TAGS
QTDIR = $(shell perl build_tools/qt_base.pl)
TAGS: $(SOURCES) $(STANDALONE_HEADERS)
etags --append --language=c++ $(STANDALONE_HEADERS) $(SOURCES) `find -L $(QTDIR) -type f -name '*.h'`