8426e47e14f466fa2f6355c777eeac3fdee32b92
[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 s51.src avr.src z80.src doc
13 #gui.src
14
15 srcdir          = .
16
17
18 # Compiling entire program or any subproject
19 # ------------------------------------------
20 all: main.mk
21         $(MAKE) -f main.mk all
22         @for pkg in $(PKGS); do\
23           cd $$pkg && $(MAKE) $$pkg ; cd ..;\
24         done
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         $(MAKE) -f clean.mk clean
53         @for pkg in $(PKGS); do\
54           $(MAKE) -C $$pkg -f clean.mk clean ;\
55         done
56
57
58 # Deleting all files created by configuring or building the program
59 # -----------------------------------------------------------------
60 distclean: clean
61         $(MAKE) -f clean.mk distclean
62         @for pkg in $(PKGS); do\
63           $(MAKE) -C $$pkg -f clean.mk distclean ;\
64         done
65         rm -rf doc/*~ doc/*.bak
66
67
68 # Like clean but some files may still exist
69 # -----------------------------------------
70 mostlyclean: clean
71         $(MAKE) -f clean.mk mostlyclean
72         @for pkg in $(PKGS); do\
73           $(MAKE) -C $$pkg -f clean.mk mostlyclean ;\
74         done
75
76
77 # Deleting everything that can reconstructed by this Makefile. It deletes
78 # everything deleted by distclean plus files created by bison, stc.
79 # -----------------------------------------------------------------------
80 realclean: distclean
81         $(MAKE) -f clean.mk realclean
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         $(SHELL) autoconf
155
156 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
157         $(SHELL) ./config.status
158
159 config.status: configure
160         $(SHELL) ./config.status --recheck
161
162 makefiles:
163         $(SHELL) ./config.status
164
165 freshconf: main.mk
166
167 checkconf:
168         @if [ -f devel ]; then\
169           $(MAKE) freshconf;\
170         fi
171
172 # End of Makefile