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