e28173816b85a4b661974ee6ad74ace223e14412
[reactos.git] / freeldr / freeldr / Makefile
1 #
2 # FreeLoader
3 # Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 #
19
20
21 export CC = gcc
22 export LD = ld
23 export AR = ar
24 export RM = cmd /C del
25 export CP = cmd /C copy
26
27 FLAGS = -Wall -nostdinc -fno-builtin
28
29 # asmcode.o has to be first in the link line because it contains the startup code
30 OBJS = asmcode.a asmcode.o ros.o boot.o freeldr.o stdlib.o fs.a fs.o fs_fat.o \
31 rosboot.o tui.o menu.o miscboot.o options.o linux.o
32 ASM_OBJS = asmcode.o ros.o boot.o
33 C_OBJS = freeldr.o stdlib.o fs.a rosboot.o tui.o menu.o miscboot.o options.o linux.o
34
35 all: freeldr.sys
36
37 freeldr.sys: asmcode.a c_code.a
38 $(LD) -N -Ttext=0x8000 --oformat=binary -o freeldr.sys asmcode.a c_code.a
39
40 asmcode.a: $(ASM_OBJS)
41 $(LD) -r -o asmcode.a $(ASM_OBJS)
42
43 c_code.a: $(C_OBJS)
44 $(LD) -r -o c_code.a $(C_OBJS)
45
46 asmcode.o: asmcode.S asmcode.h Makefile
47 $(CC) $(FLAGS) -o asmcode.o -c asmcode.S
48
49 freeldr.o: freeldr.c freeldr.h stdlib.h fs.h rosboot.h tui.h asmcode.h menu.h miscboot.h Makefile
50 $(CC) $(FLAGS) -o freeldr.o -c freeldr.c
51
52 stdlib.o: stdlib.c freeldr.h stdlib.h Makefile
53 $(CC) $(FLAGS) -o stdlib.o -c stdlib.c
54
55 fs.a: fs.o fs_fat.o Makefile
56 $(LD) -r -o fs.a fs.o fs_fat.o
57
58 fs.o: fs.c freeldr.h fs.h stdlib.h tui.h asmcode.h Makefile
59 $(CC) $(FLAGS) -o fs.o -c fs.c
60
61 fs_fat.o: fs_fat.c freeldr.h fs.h stdlib.h tui.h Makefile
62 $(CC) $(FLAGS) -o fs_fat.o -c fs_fat.c
63
64 rosboot.o: rosboot.c freeldr.h rosboot.h stdlib.h fs.h tui.h Makefile
65 $(CC) $(FLAGS) -o rosboot.o -c rosboot.c
66
67 ros.o: ros.S asmcode.h Makefile
68 $(CC) $(FLAGS) -o ros.o -c ros.S
69
70 tui.o: tui.c freeldr.h stdlib.h tui.h Makefile
71 $(CC) $(FLAGS) -o tui.o -c tui.c
72
73 menu.o: menu.c freeldr.h stdlib.h tui.h menu.h Makefile
74 $(CC) $(FLAGS) -o menu.o -c menu.c
75
76 boot.o: boot.S asmcode.h Makefile
77 $(CC) $(FLAGS) -o boot.o -c boot.S
78
79 miscboot.o: miscboot.c freeldr.h asmcode.h stdlib.h fs.h tui.h miscboot.h Makefile
80 $(CC) $(FLAGS) -o miscboot.o -c miscboot.c
81
82 options.o: options.c freeldr.h stdlib.h tui.h options.h Makefile
83 $(CC) $(FLAGS) -o options.o -c options.c
84
85 linux.o: linux.c freeldr.h stdlib.h tui.h linux.h Makefile
86 $(CC) $(FLAGS) -o linux.o -c linux.c
87
88 clean:
89 $(RM) $(OBJS)