cae24b0c65990a30692973e50bbe5da5e375f938
[fw/sdcc] / device / lib / Makefile.in
1 #
2 #
3 #
4
5 VERSION         = @VERSION@
6 VERSIONHI       = @VERSIONHI@
7 VERSIONLO       = @VERSIONLO@
8 VERSIONP        = @VERSIONP@
9
10 SHELL           = /bin/sh
11 CPP             = @CPP@
12 INSTALL         = @INSTALL@
13 CP              = @CP@
14
15 PRJDIR          = ../..
16 INCDIR          = $(PRJDIR)/device/include
17
18 CC              = $(PRJDIR)/bin/sdcc
19 CPP             = $(PRJDIR)/bin/sdcpp
20
21 prefix          = @prefix@
22 exec_prefix     = @exec_prefix@
23 bindir          = @bindir@
24 libdir          = @libdir@
25 datadir         = @datadir@
26 sdcc_datadir    = @sdcc_datadir@
27 includedir      = @includedir@
28 mandir          = @mandir@
29 man1dir         = $(mandir)/man1
30 man2dir         = $(mandir)/man2
31 infodir         = @infodir@
32 srcdir          = @srcdir@
33
34 CPPFLAGS        = -I$(INCDIR)
35 CFLAGS          = 
36
37 OBJECTS         = _atoi.rel _atol.rel _autobaud.rel _bp.rel _schar2fs.rel \
38                   _decdptr.rel _divsint.rel _divslong.rel _divuint.rel \
39                   _divulong.rel _fs2schar.rel _fs2sint.rel _fs2slong.rel \
40                   _fs2uchar.rel _fs2uint.rel _fs2ulong.rel _fsadd.rel \
41                   _fsdiv.rel _fseq.rel _fsgt.rel _fslt.rel _fsmul.rel \
42                   _fsneq.rel _fssub.rel _gptrget.rel _gptrput.rel \
43                   _sint2fs.rel _iscntrl.rel _isdigit.rel _isgraph.rel \
44                   _islower.rel _isprint.rel _ispunct.rel _isspace.rel \
45                   _isupper.rel _isxdigit.rel _slong2fs.rel _memcmp.rel \
46                   _memcpy.rel _memset.rel _modsint.rel _modslong.rel \
47                   _moduint.rel _modulong.rel _mulsint.rel _muluint.rel \
48                   _mululong.rel _mulslong.rel _ser.rel _setjmp.rel \
49                   _spx.rel _startup.rel _strchr.rel _strcmp.rel _strcpy.rel \
50                   _strcspn.rel _strlen.rel _strncat.rel _strncmp.rel \
51                   _strncpy.rel _strpbrk.rel _strrchr.rel _strspn.rel \
52                   _strstr.rel _strtok.rel _uchar2fs.rel _uint2fs.rel \
53                   _ulong2fs.rel malloc.rel serial.rel ser_ir.rel printfl.rel \
54                   printf_large.rel vprintf.rel puts.rel gets.rel \
55                   assert.rel _strcat.rel time.rel
56 SOURCES         = $(patsubst %.rel,%.c,$(OBJECTS))
57
58 include incl.mk
59
60 # Compiling entire program or any subproject
61 # ------------------------------------------
62 all: checkconf models modelDS390
63
64 objects: $(OBJECTS)
65
66 models:
67         for model in $(MODELS); do \
68           test -d $$model || mkdir $$model; \
69           $(MAKE) CFLAGS="$(CFLAGS) --model-$$model" objects; \
70           mv *.rel $$model; \
71           mv *.asm $$model; \
72           mv *.cdb $$model; \
73         done
74
75 modelDS390:
76         if [ "`grep ds390 ../../ports.build`" = ds390 ]; then \
77                 test -d ds390 || mkdir ds390; \
78                 rm -f ds390/*.lib; \
79                 $(MAKE) CFLAGS="$(CFLAGS) -mds390" objects; \
80                 cd ds390; $(MAKE); cd ..; \
81                 cp *.lib ds390; \
82                 mv *.rel *.asm *.cdb ds390; \
83         fi
84
85 # Compiling and installing everything and runing test
86 # ---------------------------------------------------
87 install: installDS390
88         $(CP) *.c $(sdcc_datadir)/lib/
89         for model in $(MODELS); do \
90          [ -d $$model ] || $(MAKE) all; \
91          $(CP) $$model/*.rel *.lib $(sdcc_datadir)/lib/$$model/; \
92          $(CP) $$model/*.asm $(sdcc_datadir)/lib/$$model/; \
93          $(CP) $$model/*.cdb $(sdcc_datadir)/lib/$$model/; \
94         done
95
96 installDS390: installdirs
97         $(CP) ds390/*.lib ds390/*.rel ds390/*.asm ds390/*.cdb $(sdcc_datadir)/lib/ds390
98
99 # Deleting all the installed files
100 # --------------------------------
101 uninstall:
102         for hdr in ../include/*.h; do rm -f $(sdcc_datadir)/include/$$hdr; done
103         for cfl in *.c; do rm -f $(sdcc_datadir)/lib/$$cfl; done
104         for model in $(MODELS); do \
105           rm -rf $(sdcc_datadir)/lib/$$model; \
106         done
107         rm -rf $(sdcc_datadir)/lib/ds390
108
109
110 # Performing self-test
111 # --------------------
112 check:
113
114
115 # Performing installation test
116 # ----------------------------
117 installcheck:
118
119
120 # Creating installation directories
121 # ---------------------------------
122 installdirs:
123         [ -d $(sdcc_datadir)/lib ] || mkdir -p $(sdcc_datadir)/lib
124         for model in $(MODELS); do \
125          [ -d $(sdcc_datadir)/lib/$$model ] || \
126          mkdir -p $(sdcc_datadir)/lib/$$model; \
127         done
128         [ -d $(sdcc_datadir)/lib/ds390 ] || mkdir -p $(sdcc_datadir)/lib/ds390
129
130 # Creating dependencies
131 # ---------------------
132 dep: Makefile.dep
133
134 Makefile.dep: $(SOURCES) $(INCDIR)/*.h
135         rm -f Makefile.dep
136         for i in $(SOURCES); do \
137           $(CPP) -lang-c++ -M $(CPPFLAGS) $$i >$${i}.dep; \
138           cat $${i}.dep >>Makefile.dep; \
139           rm $${i}.dep; \
140         done
141
142 include Makefile.dep
143 include clean.mk
144
145 # My rules
146 # --------
147
148 .SUFFIXES: .rel
149
150 .c.rel:
151         $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
152
153
154 # Remaking configuration
155 # ----------------------
156 checkconf:
157         @if [ -f $(PRJDIR)/devel ]; then\
158           $(MAKE) -f $(srcdir)/conf.mk srcdir="$(srcdir)" PRJDIR="$(PRJDIR)" \
159           freshconf;\
160         fi
161
162 # End of main_in.mk/main.mk