Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / api / api / Makefile
1 # makefile for api
2 # date : 16/07/2002
3
4 include $(AVERTEC_TOP)/etc/$(AVERTEC_OS).mk
5 include $(AVERTEC_TOP)/etc/libraries.mk
6 include $(AVERTEC_TOP)/etc/Avertec.mk
7
8 API_BIN = genapi
9
10 WIG_LIB = $(TARGET_LIB)/libavtwig.a
11
12 WRP_BIN = wrap
13 WRP_BIN_NOLIC = wrap_nolicense
14
15 I_DIR = ./avtwig
16
17 LOCAL_YACCFLAGS = $(YACCFLAGS) -d -t
18
19 SHELL = /bin/sh
20 WRP_INC = -I. -I$(I_DIR) -I$(TARGET_INCLUDE)
21 WRP_LIB = $(FLEXOBJS) -L$(TARGET_LIB) -lavtwig $(AVT_L) $(MUT_L) $(RPC_L) $(FLEXLIBS)
22 WRP_OBJ = api_wrp_gen.o api_wrp_gns.o
23 WRP_CPPFLAGS = $(CPPFLAGS) -c $(WRP_INC) -DUSE_AVTWIG -DMUT_H='<$(MUT_H)>' -DAVT_H='<$(AVT_H)>' -DAPI_H='<$(API_H)>'
24 API_CPPFLAGS = $(CPPFLAGS) -c
25
26 API_OBJ = api_util.o gen_library_parser.o gen_library_lexer.o gen_tree_parser.o gen_tree_lexer.o gen_tree_utils.o gen_tree_errors.o \
27 gen_execute_C.o gen_verif_C.o api_communication.o gen_templates.o
28
29 PRE_OBJ = gen_tree_parser.c gen_tree_parser.h gen_tree_lexer.c gen_library_parser.c gen_library_lexer.c gen_library_parser.h
30
31 SOURCES_LIB=$(API_OBJ:.o=.c)
32
33 LOCAL_CPPFLAGS = $(CPPFLAGS) $(LOCAL_INC) \
34 -DAVERTEC -D$(AVERTEC_LICENSE) -I$(TARGET_INCLUDE) -D$(AVERTEC_OS)\
35 -DAVT_H='<$(AVT_H)>' \
36 -DMUT_H='<$(MUT_H)>' \
37 -DMLO_H='<$(MLO_H)>'
38
39 LIB = -L$(TARGET_LIB) \
40 $(API_L) \
41 $(AVT_L) \
42 $(MUT_L) \
43 $(RPC_L) \
44 -lm -ldl
45
46 all: $(TARGET_INCLUDE)/$(API_H) $(TARGET_INCLUDE)/api_communication.h headers.inc $(TARGET_BIN)/$(WRP_BIN_NOLIC)
47
48 $(TARGET_INCLUDE)/$(API_H): api_lib.h gen_tree_parser.h $(TARGET_BIN)/license_api
49 sed -e "s/#endif \/\/TOBECUT/#ifndef API_HIDE_TOKENS/g" api_lib.h > tmp.h
50 grep "[0-9]" gen_tree_parser.h | grep define >> tmp.h
51 echo "#endif" >> tmp.h
52 echo "#endif" >> tmp.h
53 mv tmp.h $(TARGET_INCLUDE)/$(API_H)
54
55 headers: $(TARGET_INCLUDE)/$(API_H)
56
57 $(TARGET_BIN)/license_api: license_patch.c
58 $(CC) license_patch.c -o $(TARGET_BIN)/license_api
59
60 $(TARGET_INCLUDE)/api_communication.h: api_communication.h
61 cp api_communication.h $(TARGET_INCLUDE)
62
63 $(TARGET_BIN)/$(WRP_BIN): $(WIG_LIB) $(WRP_OBJ) $(TARGET_LIB)/$(API_LIB) $(WIG_LIB)
64 $(CPLUSPLUS) $(CFLAGS) $(WRP_OBJ) $(WRP_INC) $(WRP_LIB) -lm -o $(TARGET_BIN)/$(WRP_BIN)
65 $(STRIP) $(TARGET_BIN)/$(WRP_BIN)
66 $(CP) $(API_BIN) $(TARGET_BIN)
67
68 $(TARGET_BIN)/$(WRP_BIN_NOLIC): $(WIG_LIB) $(WRP_OBJ) $(TARGET_LIB)/$(API_LIB) $(WIG_LIB)
69 $(CPLUSPLUS) $(CFLAGS) $(WRP_OBJ) $(WRP_INC) $(WRP_LIB) -lm -o $(TARGET_BIN)/$(WRP_BIN_NOLIC)
70 cp $(TARGET_BIN)/$(WRP_BIN_NOLIC) $(TARGET_BIN)/$(WRP_BIN)
71 #-rm subdir_license
72 $(STRIP) $(TARGET_BIN)/$(WRP_BIN)
73 $(CP) $(API_BIN) $(TARGET_BIN)
74
75 $(WIG_LIB):
76 $(MAKE) -C $(I_DIR) AVERTEC_LICENSE=NO_LICENSE
77
78 $(TARGET_LIB)/$(API_LIB): $(PRE_OBJ) $(API_OBJ)
79 $(AR) $(ARFLAGS) $(TARGET_LIB)/$(API_LIB) $(API_OBJ)
80 $(RANLIB) $(TARGET_LIB)/$(API_LIB)
81 $(CP) $(API_BIN) $(TARGET_BIN)
82
83
84 tt: $(TARGET_LIB)/$(API_LIB) api_lib.h test.o
85 $(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) test.o -o tt $(LIB)
86
87 gen_tree_parser.c gen_tree_parser.h: gen_tree_parser.y
88 $(YACC) $(LOCAL_YACCFLAGS) $< -p gen_tree_parser -o gen_tree_parser.c
89
90 gen_tree_lexer.c: gen_tree_lexer.l gen_tree_parser.h
91 $(LEX) -Pgen_tree_parser -t $< > $@
92
93 gen_library_parser.c gen_library_parser.h: gen_library_parser.y
94 $(YACC) $(LOCAL_YACCFLAGS) $< -p gen_library_parser -o gen_library_parser.c
95
96 gen_library_lexer.c: gen_library_lexer.l gen_library_parser.h
97 $(LEX) -Pgen_library_parser -t $< > $@
98
99 %.o: %.cc $(TARGET_INCLUDE)/$(API_H) $(PRE_OBJ) headers.inc
100 $(CPLUSPLUS) $(CFLAGS) $(LOCAL_CPPFLAGS) $(WRP_CPPFLAGS) $<
101
102 %.o: %.c $(TARGET_INCLUDE)/$(API_H) $(PRE_OBJ)
103 $(CC) $(CFLAGS) $(WRP_CPPFLAGS) $<
104
105 headers.inc: $(TARGET_INCLUDE)/$(AVT_H) api_lib.h
106 \grep "^GRAB_IT" $(TARGET_INCLUDE)/$(AVT_H) | sed -e "s/^GRAB_IT /Printf(f_header, \"/g" -e "s/$$/\\\\n\");/g" > tmp
107 \grep "\/\/GRAB_IT" api_lib.h | sed -e "s/^\/\/GRAB_IT /Printf(f_header, \"/g" -e "s/$$/\\\\n\");/g" >> tmp
108 \grep "^GRAB_IT" api_lib.h | sed -e "s/^GRAB_IT /Printf(f_header, \"/g" -e "s/$$/\\\\n\");/g" >> tmp
109 mv tmp headers.inc
110
111 subdir_license:
112 $(MAKE) -C $(I_DIR) realclean
113 $(MAKE) -C $(I_DIR)
114 $(TOUCH) subdir_license
115
116 final_wrap: subdir_license $(TARGET_BIN)/$(WRP_BIN)
117
118
119 clean:
120 -$(RM) -f $(WRP_OBJ) $(API_OBJ) headers.inc $(PRE_OBJ)
121 $(MAKE) -C $(I_DIR) clean
122 -$(RM) -f subdir_license
123
124 realclean: clean
125 -$(RM) -f $(TARGET_BIN)/license_api $(TARGET_BIN)/$(WRP_BIN) $(TARGET_BIN)/$(WRP_BIN_NOLIC) $(TARGET_BIN)/$(API_BIN) $(TARGET_LIB)/$(API_LIB) $(TARGET_INCLUDE)/$(API_H) $(TARGET_INCLUDE)/api_communication.h
126 -$(RM) -f .depend
127 -$(RM) -f gen_tree_parser.output
128 $(MAKE) -C $(I_DIR) realclean
129
130 dep: $(SOURCES_LIB) $(SOURCES)
131 $(SCC) -MM $(CFLAGS) $(WRP_CPPFLAGS) $(SOURCES_LIB) > .depend
132
133 -include .depend
134