]> git.saurik.com Git - apple/boot.git/blob - i386/boot2/Makefile
boot-111.tar.gz
[apple/boot.git] / i386 / boot2 / Makefile
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