source: branches/port5/AISC_COM/AISC/Makefile

Last change on this file was 6778, checked in by westram, 15 years ago
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1
2# no-strict-aliasing is important - starting with gcc 4.1.1 code doesn't work without!
3# (problems are caused by type-punning w/o using union which is used widely here)
4FORCED_FLAGS=-fno-strict-aliasing -Wno-unused
5
6.SUFFIXES: .o .c .h .aisc
7
8#where to find the creator files
9AISC = ../MAKEBIN/aisc
10AISC_MKPT = ../MAKEBIN/aisc_mkpt
11
12GEN_INCLUDES = GENH/aisc.h GENH/aisc_com.h
13INCLUDE_INCLUDES = aisc_include.header
14
15GEN_SERVER_PROTO = GENH/aisc_server_proto.h
16S_GEN_SERVER_PROTO = GENC/aisc_server.c
17
18SERVER_OBJECTS = O/server.o O/struct_man.o O/aisc_extern.o
19GEN_SERVER_OBJECTS = GENC/aisc_global.o GENC/aisc_server.o
20GEN_SERVER_INCLUDES = C/aisc_server.h
21GEN_SERVER_EXTERN_PROTO = GENH/aisc_server_extern.h
22
23CLIENT_OBJECTS = O/client.o O/debug.o
24GEN_CLIENT_OBJECTS = GENC/aisc_debug_globals.o
25CLIENT_INCLUDES = C/client_privat.h C/client.h
26
27AISC_EXTERNALS  = C/aisc_extern.c $(PRIVATE_SERVER_OBJECTS:.o=.c)
28
29IMPORT_PROTO = GENH/import_proto.h
30
31SERVER = server.a
32CLIENT = client.a
33
34AISC_SERVER_EXTERN = GENH/aisc_server_extern.aisc
35
36all: $(CLIENT) $(SERVER)
37
38pregenerate: $(GEN_INCLUDES) $(GEN_SERVER_PROTO) $(GEN_SERVER_OBJECTS:.o=.c) 
39
40$(SERVER):      $(SERVER_OBJECTS) $(GEN_SERVER_OBJECTS) $(PRIVATE_SERVER_OBJECTS)
41        $(LINK_STATIC_LIB) $@ $^
42
43$(CLIENT):      $(CLIENT_OBJECTS) $(GEN_CLIENT_OBJECTS)
44        $(LINK_STATIC_LIB) $@ $^
45
46$(GEN_SERVER_OBJECTS) $(PRIVATE_SERVER_OBJECTS): \
47                                        $(GEN_INCLUDES) $(GEN_SERVER_PROTO)  \
48                                        $(GEN_SERVER_EXTERN_PROTO) $(IMPORT_PROTO) \
49                                        $(GEN_SERVER_OBJECTS:.o=.c) \
50                                        $(PRIVATE_SERVER_OBJECTS:.o=.c)
51        $(COMPILER) $(FORCED_FLAGS) -c -o $@ $(@:.o=.c) -IGENH -I. -IC -DAISC_SAVE_$(AISC_SAVE)
52
53$(GEN_CLIENT_OBJECTS): $(GEN_INCLUDES) $(GEN_CLIENT_OBJECTS:.o=.c)
54        $(CLIENTCOMPILER) $(FORCED_FLAGS) -c -o $@ $(@:.o=.c) -IGENH -I. -IC
55
56O/%.o: C/%.c $(GEN_INCLUDES) $(CLIENT_INCLUDES) C/server.h
57        $(COMPILER) $(FORCED_FLAGS) -c -o $@ $< -IGENH -I. -IC
58
59$(CLIENT_OBJECTS):      $(CLIENT_OBJECTS:O/%.o=C/%.c) $(GEN_INCLUDES) $(CLIENT_INCLUDES)
60        $(CLIENTCOMPILER) $(FORCED_FLAGS) -c -o $@ C/$(@F:.o=.c) -IGENH -I. -IC
61
62GENH/%.h: AISC/%.pa AISC/*.pa $(MAIN_SOURCE) $(INCLUDE_INCLUDES) $(AISC)
63        $(AISC) $< $(MAIN_SOURCE) $@
64
65GENC/%.c: AISC/%.pa AISC/*.pa $(MAIN_SOURCE) $(AISC_SERVER_EXTERN) $(AISC)
66        $(AISC) $< $(MAIN_SOURCE) $@ $(AISC_SERVER_EXTERN) $(IMPORT_PROTO)
67
68$(IMPORT_PROTO): GENC/aisc_server.c
69        echo $@
70
71$(AISC_SERVER_EXTERN): $(AISC_EXTERNALS)
72        rm -f $(AISC_SERVER_EXTERN)
73        $(AISC_MKPT) -a $(AISC_EXTERNALS) >$@
74
75$(GEN_SERVER_EXTERN_PROTO): $(AISC_EXTERNALS)
76        rm -f $(GEN_SERVER_EXTERN_PROTO)
77        $(AISC_MKPT) -C $(AISC_EXTERNALS) >$@
78
79$(GEN_SERVER_PROTO): $(S_GEN_SERVER_PROTO)
80        rm -f $@
81        $(AISC_MKPT) -C $(S_GEN_SERVER_PROTO) >$@
82
83clean:
84        rm -f *.[ao]
85        rm -f */*.[ao]
86        rm -f GENH/*
87        rm -f GENC/*
88        rm -f .depends
89
90.depends:
91        $(MAKEDEPEND) C/*.c GENC/*.c -I GENH -I C -f- -w1 | grep -v ' /usr' | sed -e 's/^C/O/ig' > .depends_new
92        $(ARBHOME)/SOURCE_TOOLS/mv_if_diff .depends_new .depends
93
94ifeq ($(AUTODEPENDS),1)
95include .depends
96endif
Note: See TracBrowser for help on using the repository browser.