]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | # Makefile for i386 boot program | |
3 | # define FLOPPY and SMALL using DEFINES macro as necessary | |
4 | ||
5 | DIR = boot2 | |
6 | include ../MakePaths.dir | |
7 | ||
8 | OPTIM = -Os | |
9 | CFLAGS = $(RC_CFLAGS) $(OPTIM) $(MORECPP) -arch i386 -g -Wmost -Werror \ | |
10 | -fno-builtin -DSAIO_INTERNAL_USER -static \ | |
11 | -fomit-frame-pointer -mpreferred-stack-boundary=2 \ | |
12 | -fno-align-functions | |
13 | DEFINES= | |
14 | CONFIG = hd | |
15 | SYMDIR = $(SYMROOT) | |
16 | LIBSADIR = ../libsa | |
17 | LIBSAIODIR = ../libsaio | |
18 | UTILDIR = ../util | |
19 | INC = -I. -I.. -I$(SYMDIR) -I$(LIBSADIR) -I$(LIBSAIODIR) -I$(UTILDIR) | |
20 | ifneq "" "$(wildcard /bin/mkdirs)" | |
21 | MKDIRS = /bin/mkdirs | |
22 | else | |
23 | MKDIRS = /bin/mkdir -p | |
24 | endif | |
25 | AS = as | |
26 | LD = ld | |
27 | # LIBS= -lc_static | |
28 | LIBS= -L$(SYMDIR) -lsaio -lsa -lrcz | |
29 | LIBDEP= $(SYMDIR)/libsaio.a $(SYMDIR)/libsa.a $(SYMDIR)/librcz.a | |
30 | ||
31 | OTHER_FILES = | |
32 | ||
33 | INSTALLDIR = $(DSTROOT)/usr/standalone/i386 | |
34 | VPATH = $(OBJROOT):$(SYMROOT) | |
35 | ||
36 | # The ordering is important; | |
37 | # boot2.o must be first. | |
38 | OBJS = boot2.o boot.o graphics.o drivers.o prompt.o options.o lzss.o | |
39 | # button.o browser.o scrollbar.o == NOTYET | |
40 | ||
41 | UTILDIR = ../util | |
42 | SFILES = boot2.s | |
43 | CFILES = boot.c graphics.c drivers.c prompt.c options.c | |
44 | HFILES = boot.h appleClut8.h appleboot.h | |
45 | OTHERFILES = Makefile | |
46 | ALLSRC = $(FOREIGNSRC) $(FOREIGNBIN) $(SFILES) $(CFILES) \ | |
47 | $(HFILES) $(OTHERFILES) | |
48 | DIRS_NEEDED = $(OBJROOT) $(SYMROOT) | |
49 | BOOT2ADDR = 20200 | |
50 | MAXBOOTSIZE = 65024 | |
51 | ||
52 | all: $(DIRS_NEEDED) boot | |
53 | ||
54 | boot: machOconv $(OBJS) $(LIBDEP) | |
55 | $(LD) -static -preload -segaddr __TEXT $(BOOT2ADDR) -segalign 20 \ | |
56 | -o $(SYMROOT)/boot.sys $(OBJS) $(LIBS) -lcc_kext | |
57 | machOconv $(SYMROOT)/boot.sys $(SYMROOT)/boot | |
58 | size $(SYMROOT)/boot.sys | |
59 | ls -l $(SYMROOT)/boot | |
60 | @( size=`ls -l $(SYMROOT)/boot | awk '{ print $$5}'` ; \ | |
61 | if expr "$$size" ">" "$(MAXBOOTSIZE)" > /dev/null ;\ | |
62 | then \ | |
63 | echo "Booter executable larger than $(MAXBOOTSIZE) bytes" ;\ | |
64 | rm $(SYMROOT)/boot ;\ | |
65 | exit 1;\ | |
66 | fi) | |
67 | ||
68 | prompt.o: vers.h | |
69 | vers.h: | |
70 | echo "#define I386BOOT_VERSION \"`vers_string -f 5.0`\"" | \ | |
71 | tr - . > $(SYMROOT)/vers.h | |
72 | ||
73 | install_i386:: all $(INSTALLDIR) | |
74 | cp $(SYMROOT)/boot $(OTHER_FILES) $(INSTALLDIR) | |
75 | cd $(INSTALLDIR); chmod u+w boot $(OTHER_FILES) | |
76 | ||
77 | clean:: | |
78 | rm -f $(SYMROOT)/boot.sys $(SYMROOT)/boot | |
79 | ||
80 | include ../MakeInc.dir | |
81 | ||
82 | #dependencies | |
83 | -include $(OBJROOT)/Makedep |