xref: /inferno-os/mkfile (revision ab3b8ccceed41ccadd4607ac0fdd7ceae29e1233)
1# Directories common to all architectures.
2# Build in order:
3#	- critical libraries used by the limbo compiler
4#	- the limbo compiler (used to build some subsequent libraries)
5#	- the remaining libraries
6#	- commands
7#	- utilities
8
9EMUDIRS=\
10	lib9\
11	libbio\
12	libmp\
13	libsec\
14	libmath\
15	utils/iyacc\
16	limbo\
17	libinterp\
18	libkeyring\
19	libdraw\
20	libprefab\
21	libtk\
22	libfreetype\
23	libmemdraw\
24	libmemlayer\
25	libdynld\
26	utils/data2c\
27	utils/ndate\
28	emu\
29
30KERNEL_DIRS=\
31	os\
32	os/boot/pc\
33
34# mkconfig is included at this point to allow it to override
35#the preceding declarations (particularly KERNEL_DIRS) if need be
36
37<mkconfig
38
39DIRS=\
40	$EMUDIRS\
41#	appl\
42
43foo:QV:
44	echo mk all, clean, install, installall or nuke
45
46all:V:		all-$HOSTMODEL
47clean:V:	clean-$HOSTMODEL
48install:V:	install-$HOSTMODEL
49installall:V:	installall-$HOSTMODEL
50emu:V:	emu/all-$HOSTMODEL
51emuinstall:V:	emu/install-$HOSTMODEL
52emuclean:V:	emu/clean-$HOSTMODEL
53emunuke:V:	emu/nuke-$HOSTMODEL
54kernel:V:	kernel/all-$HOSTMODEL
55kernelall:V:	kernel/all-$HOSTMODEL
56kernelclean:V:	kernel/clean-$HOSTMODEL
57kernelinstall:V:	kernel/install-$HOSTMODEL
58kernelinstallall:V:	kernel/installall-$HOSTMODEL
59kernelnuke:V:	kernel/nuke-$HOSTMODEL
60nuke:V:		nuke-$HOSTMODEL
61
62cleandist:V: clean
63	rm -f $ROOT/$OBJDIR/lib/lib*.a
64
65nukedist:V: nuke
66	rm -f $ROOT/$OBJDIR/bin/*.exe
67	rm -f $ROOT/$OBJDIR/lib/lib*.a
68
69&-Posix:QV:
70	for j in $DIRS utils tools
71	do
72		echo "(cd $j; mk $MKFLAGS $stem)"
73		(cd $j; mk $MKFLAGS $stem) || exit 1
74	done
75
76&-Nt:QV:
77	for (j in $DIRS utils tools)
78	{
79		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
80		@{builtin cd $j; mk.exe $MKFLAGS $stem }
81	}
82
83&-Inferno:QV:
84	for (j in $DIRS utils)
85	{
86		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
87		@{builtin cd $j; mk $MKFLAGS $stem }
88	}
89
90&-Plan9:QV:
91	for (j in $DIRS utils)
92	{
93		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
94		@{builtin cd $j; mk $MKFLAGS $stem }
95	}
96
97emu/&-Posix:QV:
98	for j in $EMUDIRS
99	do
100		echo "(cd $j; mk $MKFLAGS $stem)"
101		(cd $j; mk $MKFLAGS $stem) || exit 1
102	done
103
104emu/&-Nt:QV:
105	for (j in $EMUDIRS)
106	{
107		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
108		@{builtin cd $j; mk $MKFLAGS $stem }
109	}
110
111emu/&-Plan9:QV:
112	for (j in $EMUDIRS)
113	{
114		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
115		@{builtin cd $j; mk $MKFLAGS $stem }
116	}
117
118kernel/&-Posix:QV:
119	for j in $KERNEL_DIRS
120	do
121		echo "(cd $j; mk $MKFLAGS $stem)"
122		(cd $j; mk $MKFLAGS $stem) || exit 1
123	done
124
125kernel/&-Nt:QV:
126	for (j in $KERNEL_DIRS)
127	{
128		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
129		@{builtin cd $j; mk $MKFLAGS $stem }
130	}
131
132kernel/&-Inferno:QV:
133	for (j in $KERNEL_DIRS)
134	{
135		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
136		@{builtin cd $j; mk $MKFLAGS $stem }
137	}
138
139kernel/&-Plan9:QV:
140	for (j in $KERNEL_DIRS)
141	{
142		echo '@{builtin cd' $j '; mk $MKFLAGS $stem}'
143		@{builtin cd $j; mk $MKFLAGS $stem }
144	}
145
146# Convenience targets
147
148Inferno-% inferno-% Inferno-386-% inferno-386-%:V:
149	mk 'SYSHOST=Inferno' 'OBJTYPE=386' $stem
150
151Inferno-arm-% inferno-arm-%:V:
152	mk 'SYSHOST=Inferno' 'OBJTYPE=arm' $stem
153
154Plan9-% plan9-%:V:
155	mk 'SYSHOST=Plan9' 'OBJTYPE=386' $stem
156
157Irix-% irix-%:V:
158	mk 'SYSHOST=Irix' 'OBJTYPE=mips' $stem
159
160Linux-% linux-%:V:
161	mk 'SYSHOST=Linux' 'OBJTYPE=386' $stem
162
163NetBSD-% netbsd-%:V:
164	mk 'SYSHOST=NetBSD' 'OBJTYPE=386' $stem
165
166Nt-% nt-% Win95-% win95-%:V:
167	mk 'SYSHOST=Nt' 'OBJTYPE=386' $stem
168
169Solaris-% solaris-%:V:
170	mk 'SYSHOST=Solaris' 'OBJTYPE=sparc' $stem
171
172mkdirs:V:	mkdirs-$SHELLTYPE
173
174mkdirs-rc:V:
175	mkdir -p `{cat lib/emptydirs}
176	chmod 555 mnt/* n/client/* n/*
177
178mkdirs-sh:V:
179	mkdir -p `cat lib/emptydirs`
180	chmod 555 mnt/* n/client/* n/*
181
182mkdirs-nt:V:
183	mkdir -p `{cmd /c type lib\emptydirs}
184