Makefile 1.08 KB
Newer Older
Jaime Arias's avatar
Jaime Arias committed
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
LIB = libRdP.a

FILES = Net.cpp RdPMonteur.tab.cpp RdPMonteur.lex.c

CCFILES =$(filter %.c,$(FILES))
CPPFILES =$(filter %.cpp,$(FILES))

OBJS = $(CPPFILES:.cpp=.o) $(CCFILES:.c=.o)
DEPS = $(CPPFILES:.cpp=.d) $(CCFILES:.c=.d)

CC =gcc
CXX = g++
CXXFLAGS= -O3 -Wall

all: $(LIB)

$(LIB): $(OBJS)
	ar ru $(LIB) $(OBJS)
	ranlib $(LIB)

# implicit rules

.cpp.o: RdPMonteur.tab.cpp RdPMonteur.lex.c
	$(CXX) -c $(CXXFLAGS) $<

.c.o: RdPMonteur.tab.cpp RdPMonteur.lex.c
	$(CC) -c $(CXXFLAGS) $<

clean:
	rm -f $(LIB) *.o *.d *~ *.tab.h *.tab.cpp *.lex.c

%.d: %.cpp RdPMonteur.tab.cpp RdPMonteur.lex.c
	@$(SHELL) -ec '$(CXX) -M $(CXXFLAGS) $(INCLUDES) $< \
                | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
                [ -s $@ ] || rm -f $@'

%.d: %.c RdPMonteur.tab.cpp RdPMonteur.lex.c
	@$(SHELL) -ec '$(CC) -M $(CXXFLAGS) $(INCLUDES) $< \
                | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
                [ -s $@ ] || rm -f $@'

%.tab.cpp: %.y
	bison -d  $<
	mv $*.tab.c $*.tab.cpp

%.lex.c: %.l %.tab.cpp
	flex  -o$*.lex.c $<

-include $(DEPS)