9f737410ee886df01400ba6fd0c50dba5e8fde30
[fw/sdcc] / sim / ucsim / Makefile
1 #
2 # uCsim Makefile
3 #
4 # (c) Drotos Daniel, Talker Bt. 1997,99
5 #
6
7 STARTYEAR       = 1997
8
9 SHELL           = /bin/sh
10
11 PRJDIR          = .
12 PKGS            = cmd.src sim.src gui.src s51.src avr.src z80.src doc
13
14 srcdir          = .
15
16
17 # Compiling entire program or any subproject
18 # ------------------------------------------
19 all: checkconf
20         $(MAKE) -f main.mk all
21         @for pkg in $(PKGS); do\
22           cd $$pkg && $(MAKE) $$pkg ; cd ..;\
23         done
24         $(MAKE) -f main.mk main_app
25
26 libs: main.mk
27         $(MAKE) -f main.mk libs
28
29
30 # Compiling and installing everything and runing test
31 # ---------------------------------------------------
32 .PHONY: install INSTALL Install
33 install:
34         $(MAKE) -f main.mk install
35         @for pkg in $(PKGS); do\
36           $(MAKE) -C $$pkg install ;\
37         done
38
39
40 # Deleting all the installed files
41 # --------------------------------
42 uninstall:
43         $(MAKE) -f main.mk uninstall
44         @for pkg in $(PKGS); do\
45           $(MAKE) -C $$pkg uninstall ;\
46         done
47
48
49 # Deleting all files created by building the program
50 # --------------------------------------------------
51 clean:
52         rm -f *core *[%~] *.[oa] *.so ucsim
53         rm -f .[a-z]*~
54         @for pkg in $(PKGS); do\
55           $(MAKE) -C $$pkg -f clean.mk clean ;\
56         done
57
58
59 # Deleting all files created by configuring or building the program
60 # -----------------------------------------------------------------
61 distclean: clean
62         rm -f config.cache config.log config.status
63         rm -f ddconfig.h main.mk *.dep
64         @for pkg in $(PKGS); do\
65           $(MAKE) -C $$pkg -f clean.mk distclean ;\
66         done
67         rm -rf doc/*~ doc/*.bak
68
69
70 # Like clean but some files may still exist
71 # -----------------------------------------
72 mostlyclean: clean
73         @for pkg in $(PKGS); do\
74           $(MAKE) -C $$pkg -f clean.mk mostlyclean ;\
75         done
76
77
78 # Deleting everything that can reconstructed by this Makefile. It deletes
79 # everything deleted by distclean plus files created by bison, stc.
80 # -----------------------------------------------------------------------
81 realclean: distclean
82         @for pkg in $(PKGS); do\
83           $(MAKE) -C $$pkg -f clean.mk realclean ;\
84         done
85
86
87 # Creating distribution
88 # ---------------------
89 dist: distclean
90         @if [ -f devel ]; then\
91           rm -f devel; mkdist ucsim; touch devel;\
92         else\
93           mkdist ucsim;\
94         fi
95
96
97 # Performing self-test
98 # --------------------
99 check:
100
101
102 # Performing installation test
103 # ----------------------------
104 installcheck:
105
106
107 # Creating dependencies
108 # ---------------------
109 dep:
110         $(MAKE) -f main.mk dep
111         @for pkg in $(PKGS); do\
112           $(MAKE) -C $$pkg dep ;\
113         done
114
115
116 # My rules
117 # --------
118 putcopyright:
119         'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
120
121 start:
122         date '+%Y.%m.%d-%H:%M' >.start
123
124 newer: distclean
125         @if [ -f .start ]; then \
126           tar cvf - \
127             `find . -newer .start -type f -print` |\
128           gzip -9c >ucsim-newer-`cat .start`_`date '+%Y.%m.%d-%H:%M'`_`hostname`.tgz; \
129         else \
130           echo ".start file not found.\n"; \
131           exit 1; \
132         fi
133
134 print-newer:
135         @if [ -f .start ]; then \
136           find . -newer .start -type f -print ;\
137         else \
138           echo ".start file not found.\n" ;\
139           exit 1 ;\
140         fi
141
142 new_files:
143         diff -rNu $$HOME/clean-source/sdcc/sim/ucsim .|\
144         grep '^diff' | grep -v CVS | awk '{print $$4}'
145
146 lines:
147         @find . \( -name '*.[ch]' -o -name '*.cc' -o -name '*.hh' \) \
148         -exec cat {} \; | clines
149
150
151 # Remaking configuration
152 # ----------------------
153 configure: configure.in
154         @echo "RE-CREATING CONFIGURE"
155         $(SHELL) autoconf configure.in >configure
156         chmod 755 configure
157
158 config.status: configure
159         @echo "RE-CHECKING CONFIGURATION"
160         ./config.status -recheck
161
162 makefiles: config.status
163         @echo "RE-MAKING MAKEFILES"
164         $(SHELL) ./config.status
165
166 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in
167         @echo "RE-MAKING MAIN.MK"
168         $(SHELL) ./config.status
169
170 freshconf: echo_freshconf configure main.mk
171
172 echo_freshconf:
173         @echo "FRESHCONF"
174
175 checkconf:
176         @if [ -f devel ]; then $(MAKE) freshconf; fi
177
178 # End of Makefile