1 # $NetBSD: Makefile,v 1.40 2009/10/17 11:18:17 mlelstv Exp $
3 .
include <bsd.sys.mk
> # for HOST_SH
7 #XX# lines replace similar lines, or are added, in case we want to
8 #XX# compile LIBZ ourselves to save a few bytes (think TXLT)
10 #XX#DIR_LIBZ = ${DIR_TOP}/../common/dist/zlib
12 DIR_TOP
= ${.CURDIR
}/..
/..
/..
/..
/..
13 DIR_SA
= ${DIR_TOP}/lib
/libsa
15 DIR_KERN
= ${DIR_TOP}/lib
/libkern
16 DIR_KERN_MD
= ${DIR_TOP}/lib
/libkern
/arch
/$(MACHINE_ARCH
)
17 DIR_LIBC
= ${DIR_TOP}/..
/common
/lib
/libc
19 .PATH
: $(DIR_SA
) ${DIR_LIBZ} $(DIR_KERN
) $(DIR_KERN_MD
) \
20 ${DIR_LIBC}/gen
${DIR_LIBC}/arch
/m68k
/gen \
21 ${DIR_LIBC}/inet
${DIR_LIBC}/arch
/m68k
/inet \
22 ${DIR_LIBC}/quad
${DIR_LIBC}/arch
/m68k
/quad \
23 ${DIR_LIBC}/string
${DIR_LIBC}/arch
/m68k
/string
25 ### find out what to use for libz
29 .
include "${DIR_TOP}/lib/libz/Makefile.inc"
32 # prefer our assembler versions over assembler, and assembler over C:
35 .SUFFIXES
: .out .o .po .so .s .S .c .
cc .C .f .y .l .ln .m4 .sh
40 COBJS
= main.o console.o xd.o twiddle.o bzero.o gets.o
41 COBJS
+= lseek.o open.o read.o close.o dev.o errno.o
42 COBJS
+= ufs.o ustarfs.o panic.o vers.o files.o
43 COBJS
+= divdi3.o moddi3.o qdivrem.o
45 SOBJS
= alloc.o ashrdi3.o ashldi3.o bcopy.o muldi3.o printf.o startit.o
46 SOBJS
+= strlen.o memcmp.o memset.o strerror.o strncmp.o
49 OBJS
= $(SOBJS
) $(COBJS
)
51 #XX#DEFS = -D_STANDALONE -DSA_EXEC_ANYOWNER -DDYNAMIC_CRC_TABLE -DNOBYFOUR -UBYFOUR
52 DEFS
= -D_STANDALONE
-DSA_EXEC_ANYOWNER
53 DEFS
+= -D__INTERNAL_LIBSA_CREAD
57 #XX#SOBJS += adler32.o crc32.o inflate.o trees.o \
58 #XX# zutil.o infback.o inftrees.o inffast.o
60 #DEFS += -DBOOT_ELF32 -DBOOT_AOUT
61 SOBJS
+= loadfile.o loadfile_aout.o loadfile_elf32.o
63 NETBSD_VERS
!= ${HOST_SH} ${.CURDIR
}/..
/..
/..
/..
/..
/conf
/osrelease.sh
64 DEFS
+= -DNETBSD_VERS
='"${NETBSD_VERS}"'
68 realall
: machine m68k
${FILES}
70 CLEANFILES
+= boot.amiga x.out xxstart.o libboot.a vers.c machine m68k
72 .
include <bsd.prog.mk
>
74 ### special rules for bootblocks ###
76 INCPATH
= -nostdinc
-I
${DIR_TOP} -I
${DIR_TOP}/lib
/libsa
77 INCPATH
+= -I
${DIR_TOP}/..
/common
/dist/zlib
78 INCPATH
+= -I
${.CURDIR
}
79 INCPATH
+= -I
${.CURDIR
}/..
/..
/..
-I
${.OBJDIR
}
80 INCPATH
+= -I
${.CURDIR
}/..
/aout2bb
83 CAFLAGS
+= -Wa
,-l
-Wa
,-m68030
${INCPATH}
85 COPTIM
= -Os
-fomit-frame-pointer
-fcse-follow-jumps
-fcse-skip-blocks
-Wa
,-l
-m68060
-Wa
,-m68030
86 CFLAGS
= -ffreestanding
${COPTIM} ${INCPATH} ${DEFS}
88 CFLAGS
+= -Wall
-Wmissing-prototypes
-Wstrict-prototypes
-Wpointer-arith
91 ${CC} ${CFLAGS} -S
$< -o
$*.s
92 ${TXLT} < $*.s |
${AS} ${AFLAGS} -o
$*.o
95 .s.o
: ; ${CC} ${CAFLAGS} ${COPTS} -x assembler-with-cpp
-o
$@
-c
$<
97 .S.o
: ; ${CC} ${CAFLAGS} ${COPTS} -x assembler-with-cpp
-o
$@
-c
$<
100 ${RELOC2BB} -S x.out
$@ ||
${NM} -u x.out
102 x.out
: xxstart.o libboot.a
${LIBZ}
103 ${LD} ${LDFLAGS} -r
-dc
-e _start
-o
$@
$>
107 xxstart.o
: ${.CURDIR
}/bbstart.s
108 ${CC} ${CAFLAGS} ${COPTS} -x assembler-with-cpp \
112 ${AR} r
$@
$> && ${RANLIB} $@
115 vers.c
: ${.CURDIR
}/version
116 ${HOST_SH} ${DIR_TOP}/conf
/newvers_stand.sh
-N
${.CURDIR
}/version
"amiga"
118 .if
!make
(obj
) && !make
(clean) && !make
(cleandir
)
119 .NOPATH
: machine m68k
124 ln
-s
${DIR_TOP}/arch
/amiga
/include $@
128 ln
-s
${DIR_TOP}/arch
/m68k
/include $@
131 # make sure these are built:
134 ${FILES}: ${RELOC2BB}
136 .
include "${.CURDIR}/../Makefile.booters"