File: Makefile

package info (click to toggle)
contextfree 2.2%2Bdfsg1-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 4,292 kB
  • ctags: 4,316
  • sloc: cpp: 20,388; yacc: 507; objc: 494; ansic: 270; makefile: 114; lex: 92; sh: 35; xml: 24
file content (132 lines) | stat: -rw-r--r-- 2,681 bytes parent folder | download | duplicates (2)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

all: cfdg


#
# Dirs
#

OBJ_DIR = objs

COMMON_DIR = src-common
UNIX_DIR = src-unix
DERIVED_DIR = $(OBJ_DIR)
AGG_DIR = src-agg

SRC_DIRS = $(COMMON_DIR) $(UNIX_DIR) $(DERIVED_DIR) $(AGG_DIR)/src
vpath %.cpp $(SRC_DIRS)
vpath %.c	$(SRC_DIRS)

INC_DIRS = $(COMMON_DIR) $(UNIX_DIR) $(DERIVED_DIR) $(AGG_DIR)/include $(COMMON_DIR)/agg-extras

#
# Sources and Objects
#

COMMON_SRCS = cfdg.cpp Rand48.cpp makeCFfilename.cpp \
	cfdgimpl.cpp renderimpl.cpp builder.cpp shape.cpp \
	yglue.cpp variation.cpp countable.cpp tempfile.cpp \
	aggCanvas.cpp HSBColor.cpp SVGCanvas.cpp \
	primShape.cpp bounds.cpp shape.cpp shapeSTL.cpp tiledCanvas.cpp

UNIX_SRCS = pngCanvas.cpp posixSystem.cpp main.cpp posixTimer.cpp \
    posixVersion.cpp

DERIVED_SRCS = lex.yy.c y.tab.c

AGG_SRCS = agg_trans_affine.cpp agg_curves.cpp agg_vcgen_contour.cpp \
    agg_vcgen_stroke.cpp agg_bezier_arc.cpp

SRCS = $(COMMON_SRCS) $(UNIX_SRCS) $(DERIVED_SRCS) $(AGG_SRCS)
OBJS = $(patsubst %.c,$(OBJ_DIR)/%.o, \
	$(patsubst %.cpp,$(OBJ_DIR)/%.o,$(SRCS)))
DEPS = $(patsubst %.o,%.d,$(OBJS))

deps: $(OBJ_DIR) $(DEPS)
include $(DEPS)

$(OBJS): $(OBJ_DIR)/Sentry

#
# Executable
#
# Under Mac OS X replace $(LINK.o) with g++.
# Under Cygwin replace strip $@ with strip $@.exe

cfdg: $(OBJS)
	$(LINK.o) $^ -L/usr/local/lib -lstdc++ -lpng -lz -fexceptions -o $@
	strip $@


#
# Derived
#

$(DERIVED_DIR)/lex.yy.c: $(COMMON_DIR)/cfdg.l
	flex -t $^ > $@

$(DERIVED_DIR)/y.tab.h: $(DERIVED_DIR)/y.tab.c
$(DERIVED_DIR)/y.tab.c: $(COMMON_DIR)/cfdg.y
	cd $(DERIVED_DIR); yacc -d ../$(COMMON_DIR)/cfdg.y

$(OBJ_DIR)/lex.yy.o: $(DERIVED_DIR)/y.tab.h

#
# Utility
#

clean :
	rm -f $(OBJ_DIR)/*
	rm -f cfdg

distclean: clean
	rmdir $(OBJ_DIR)

$(OBJ_DIR)/Sentry :
	mkdir -p $(OBJ_DIR) 2> /dev/null || true
	touch $@

#
# Tests
#

RTEST_CFDG = input/rendering-tests.cfdg
OUTPUT_DIR = output

rtests: $(OUTPUT_DIR)/rtest-700.png $(OUTPUT_DIR)/rtest-2k.png

$(OUTPUT_DIR)/rtest-700.png: cfdg $(RTEST_CFDG)
	./cfdg -s 700 $(RTEST_CFDG) $@
$(OUTPUT_DIR)/rtest-2k.png: cfdg $(RTEST_CFDG)
	./cfdg -s 2000 $(RTEST_CFDG) $@

#
# Rules
#

CPPFLAGS += $(patsubst %,-I%,$(INC_DIRS))
CPPFLAGS += -O3 -Wall
#CPPFLAGS += -ggdb

$(OBJ_DIR)/%.o : %.cpp
	$(COMPILE.cpp) $(OUTPUT_OPTION) $<

$(OBJ_DIR)/%.o : %.c
	$(COMPILE.c) $(OUTPUT_OPTION) $<

$(OBJ_DIR)/%.d : %.cpp
	mkdir -p $(OBJ_DIR) 2> /dev/null || true
	set -e; $(COMPILE.cpp) -MM $< \
	| sed 's,\(.*\.o\)\( *:\),$(OBJ_DIR)/\1 $@\2,g' > $@; \
	[ -s $@ ] || rm -f $@

$(OBJ_DIR)/%.d : %.c
	mkdir -p $(OBJ_DIR) 2> /dev/null || true
	set -e; $(COMPILE.c) -MM $< \
	| sed 's,\(.*\.o\)\( *:\),$(OBJ_DIR)/\1 $@\2,g' > $@; \
	[ -s $@ ] || rm -f $@

$(OBJ_DIR)/y.tab.d:

$(OBJ_DIR)/lex.yy.d: