1# Copyright (C) 1996,1997 Robert de Bath <robert@mayday.cix.co.uk>
2# This file is part of the Linux-8086 C library and is distributed
3# under the GNU Library General Public License.
4
5ifeq ($(TOPDIR),)
6# This should work, but ..
7TOP=..
8else
9TOP=$(TOPDIR)/libc
10endif
11
12LIBBCC=$(TOP)/libbcc.a
13CC=bcc
14CCFLAGS=-I -I$(TOP)/include
15DEFS=-D__LIBC__
16
17include Make.defs
18
19ifeq ($(VERSION),)
20include VERSION
21endif
22
23CFLAGS=-pipe -O2 -fno-strict-aliasing  $(ARCH) $(CCFLAGS) $(DEFS)
24USERID=$(shell id -gn)
25GROUPID=$(shell id -un)
26
27############################################################################
28
29MAKEPASS=	\
30         LIBC='$(LIBC)' CC='$(CC)' ARCH='$(ARCH)' CCFLAGS='-pipe -O2 -fno-strict-aliasing  $(CCFLAGS)'	\
31         DEFS='$(DEFS)' LIB_CPU='$(LIB_CPU)' LIB_OS='$(LIB_OS)' \
32
33
34all: $(OBJ) $(LIBC) $(LIBBCC)
35	@:
36
37$(LIBC): transfer .config.dir
38	@for i in `cat .config.dir` ; do \
39	   $(MAKE) $(MAKEPASS) -C $$i all || exit 1 ; \
40	done
41
42$(LIBBCC): .config.dir
43	   $(MAKE) $(MAKEPASS) LIBC=$(LIBBCC) -C bcc all
44
45crt3.o: crt0.c Makefile
46	$(CC) -c $(CFLAGS) -D__LIBC_VER__='"$(VERSION)"' -o $@ crt0.c
47
48crt0.o: crt0.c Makefile
49	$(CC) -c $(CFLAGS) -D__LIBC_VER__='"$(VERSION)"' -o $@ crt0.c
50
51crtg.o: crt0.c Makefile
52	$(CC) -c $(CFLAGS) -D__LIBC_VER__='"$(VERSION)"' -o $@ crt0.c
53
54crtX.o:
55	@echo "You need to define the 'PLATFORM=...' variable,"
56	@echo "Preferably by doing make from `dirname \`pwd\``"
57	@exit 1
58
59############################################################################
60
61transfer: .config.dir
62	@for i in `cat .config.dir`; do \
63	   grep -s '^transfer' $$i/Makefile && $(MAKE) -s -C $$i $@ ; \
64	done ; echo -n
65	@[ -d include/linuxmt/. ] || \
66	  ln -s $(ELKSSRC)/include/linuxmt include
67	@[ -d include/arch/. ] || \
68	  ln -s $(ELKSSRC)/include/arch include
69
70############################################################################
71
72realclean: clean noconfig
73
74clean:
75	rm -f *.o *.a
76	@for i in */Makefile ; do \
77	   $(MAKE) -C `dirname $$i` $@ || exit 1 ; \
78	done
79
80############################################################################
81
82install_incl: transfer
83	install -d $(DISTINCL)/include
84	rm -f $(DISTINCL)/include/linuxmt $(DISTINCL)/include/arch ||:
85	cp -LpR include/* $(DISTINCL)/include
86	-chown -R $(USERID):$(GROUPID) $(DISTINCL)/include
87	-chmod -R ugo-x,u=rwX,og=rX $(DISTINCL)/include
88
89############################################################################
90
91config:
92	sh Config_sh
93
94.config.dir: .config.lst
95	@grep '^[^:]*:+:' < .config.lst | sed 's/:.*//' > .config.tmp
96	@mv -f .config.tmp .config.dir
97
98.config.lst: Config_sh
99	sh Config_sh
100
101noconfig:
102	rm -f .config.dir .config.lst .config.tmp
103
104############################################################################
105