Makefile.luna68k revision 1.7
11.7Shubertf# $NetBSD: Makefile.luna68k,v 1.7 2000/05/09 00:56:24 hubertf Exp $ 21.1Snisimura 31.1Snisimura# Makefile for NetBSD 41.1Snisimura# 51.1Snisimura# This makefile is constructed from a machine description: 61.1Snisimura# config machineid 71.1Snisimura# Most changes should be made in the machine description 81.1Snisimura# /sys/arch/luna68k/conf/``machineid'' 91.1Snisimura# after which you should do 101.1Snisimura# config machineid 111.1Snisimura# Machine generic makefile changes should be made in 121.1Snisimura# /sys/arch/luna68k/conf/Makefile.luna68k 131.1Snisimura# after which config should be rerun for all machines of that type. 141.1Snisimura# 151.1Snisimura# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE VISIBLE TO MAKEFILE 161.1Snisimura# IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING 171.1Snisimura# 181.1Snisimura# -DTRACE compile in kernel tracing hooks 191.1Snisimura# -DQUOTA compile in file system quotas 201.1Snisimura 211.1Snisimura# DEBUG is set to -g if debugging. 221.1Snisimura# PROF is set to -pg if profiling. 231.1Snisimura 241.1SnisimuraAR?= ar 251.1SnisimuraAS?= as 261.1SnisimuraCC?= cc 271.1SnisimuraCPP?= cpp 281.1SnisimuraLD?= ld 291.1SnisimuraLORDER?=lorder 301.1SnisimuraMKDEP?= mkdep 311.1SnisimuraNM?= nm 321.1SnisimuraRANLIB?=ranlib 331.1SnisimuraSIZE?= size 341.5StsutsuiSTRIP?= strip 351.1SnisimuraTSORT?= tsort -q 361.1SnisimuraOBJCOPY?= objcopy 371.1Snisimura 381.1SnisimuraCOPTS?= -O2 391.1Snisimura 401.1Snisimura# source tree is located via $S relative to the compilation directory 411.1Snisimura.ifndef S 421.1SnisimuraS!= cd ../../../..; pwd 431.1Snisimura.endif 441.1SnisimuraLUNA68K=$S/arch/luna68k 451.1Snisimura 461.1Snisimura# Override CPP defaults entirely, so cross-compilation works. 471.1Snisimura# Keep -nostdinc before all -I flags, similar for -undef ... 481.6SthorpejHAVE_EGCS!= ${CC} --version | egrep "^(2\.[89]|egcs)" ; echo 491.1SnisimuraINCLUDES= -nostdinc -I. -I$S/arch -I$S 501.1SnisimuraCPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -Dluna68k 511.6SthorpejCWARNFLAGS?= -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes \ 521.6Sthorpej -Wpointer-arith 531.6Sthorpej# XXX Delete -Wuninitialized for now, since the compiler doesn't 541.6Sthorpej# XXX always get it right. --thorpej 551.6SthorpejCWARNFLAGS+= -Wno-uninitialized 561.6Sthorpej.if (${HAVE_EGCS} != "") 571.1SnisimuraCWARNFLAGS+= -Wno-main 581.1Snisimura.endif 591.1SnisimuraCFLAGS= ${DEBUG} ${COPTS} ${CWARNFLAGS} -msoft-float 601.1SnisimuraAFLAGS= -x assembler-with-cpp -traditional-cpp -D_LOCORE 611.1SnisimuraLINKFLAGS= -N -Ttext 0xc000 -e start 621.2StsutsuiSTRIPFLAGS= -g 631.1Snisimura 641.1Snisimura%INCLUDES 651.1Snisimura 661.1SnisimuraHOSTED_CC= ${CC} 671.1SnisimuraHOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//} 681.1SnisimuraHOSTED_CFLAGS= ${CFLAGS} 691.1Snisimura 701.1Snisimura### find out what to use for libkern 711.1Snisimura.include "$S/lib/libkern/Makefile.inc" 721.1Snisimura.ifndef PROF 731.1SnisimuraLIBKERN= ${KERNLIB} 741.1Snisimura.else 751.1SnisimuraLIBKERN= ${KERNLIB_PROF} 761.1Snisimura.endif 771.1Snisimura 781.1Snisimura### find out what to use for libcompat 791.1Snisimura.include "$S/compat/common/Makefile.inc" 801.1Snisimura.ifndef PROF 811.1SnisimuraLIBCOMPAT= ${COMPATLIB} 821.1Snisimura.else 831.1SnisimuraLIBCOMPAT= ${COMPATLIB_PROF} 841.1Snisimura.endif 851.1Snisimura 861.1Snisimura### for the Motorola 68040 Floating Point Software Product 871.1Snisimura# .include "$S/arch/m68k/fpsp/Makefile.inc" 881.1Snisimura 891.1Snisimura# compile rules: rules are named ${TYPE}_${SUFFIX} where TYPE is NORMAL or 901.1Snisimura# HOSTED}, and SUFFIX is the file suffix, capitalized (e.g. C for a .c file). 911.1Snisimura 921.1SnisimuraNORMAL_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< 931.1SnisimuraNOPROF_C= ${CC} ${CFLAGS} ${CPPFLAGS} -c $< 941.1SnisimuraNORMAL_S= ${CC} ${AFLAGS} ${CPPFLAGS} -c $< 951.1Snisimura 961.1SnisimuraHOSTED_C= ${HOSTED_CC} ${HOSTED_CFLAGS} ${HOSTED_CPPFLAGS} -c $< 971.1Snisimura 981.1Snisimura%OBJS 991.1Snisimura 1001.1Snisimura%CFILES 1011.1Snisimura 1021.1Snisimura%SFILES 1031.1Snisimura 1041.1Snisimura# load lines for config "xxx" will be emitted as: 1051.1Snisimura# xxx: ${SYSTEM_DEP} swapxxx.o 1061.1Snisimura# ${SYSTEM_LD_HEAD} 1071.1Snisimura# ${SYSTEM_LD} swapxxx.o 1081.1Snisimura# ${SYSTEM_LD_TAIL} 1091.1SnisimuraSYSTEM_OBJ= locore.o ${FPSP} \ 1101.1Snisimura param.o ioconf.o ${OBJS} ${LIBCOMPAT} ${LIBKERN} 1111.1SnisimuraSYSTEM_DEP= Makefile ${SYSTEM_OBJ} 1121.1SnisimuraSYSTEM_LD_HEAD= @rm -f $@ 1131.1SnisimuraSYSTEM_LD= @echo ${LD} ${LINKFLAGS} -o $@ '$${SYSTEM_OBJ}' vers.o; \ 1141.1Snisimura ${LD} ${LINKFLAGS} -o $@ ${SYSTEM_OBJ} vers.o 1151.1SnisimuraSYSTEM_LD_TAIL= @${SIZE} $@; chmod 755 $@ 1161.1Snisimura 1171.1SnisimuraDEBUG?= 1181.1Snisimura.if ${DEBUG} == "-g" 1191.1SnisimuraLINKFLAGS+= -X 1201.1SnisimuraSYSTEM_LD_TAIL+=; \ 1211.1Snisimura echo mv -f $@ $@.gdb; mv -f $@ $@.gdb; \ 1221.5Stsutsui echo ${STRIP} ${STRIPFLAGS} -o $@ $@.gdb; \ 1231.5Stsutsui ${STRIP} ${STRIPFLAGS} -o $@ $@.gdb 1241.1Snisimura.else 1251.1SnisimuraLINKFLAGS+= -S 1261.1Snisimura.endif 1271.1Snisimura 1281.1Snisimura%LOAD 1291.1Snisimura 1301.1Snisimuraassym.h: $S/kern/genassym.sh ${LUNA68K}/luna68k/genassym.cf 1311.1Snisimura sh $S/kern/genassym.sh ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \ 1321.1Snisimura < ${LUNA68K}/luna68k/genassym.cf > assym.h.tmp && \ 1331.1Snisimura mv -f assym.h.tmp assym.h 1341.1Snisimura 1351.1Snisimuraparam.c: $S/conf/param.c 1361.1Snisimura rm -f param.c 1371.1Snisimura cp $S/conf/param.c . 1381.1Snisimura 1391.1Snisimuraparam.o: param.c Makefile 1401.1Snisimura ${NORMAL_C} 1411.1Snisimura 1421.1Snisimuraioconf.o: ioconf.c 1431.1Snisimura ${NORMAL_C} 1441.1Snisimura 1451.1Snisimuranewvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} 1461.1Snisimura sh $S/conf/newvers.sh 1471.1Snisimura ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c 1481.1Snisimura 1491.1Snisimura__CLEANKERNEL: .USE 1501.1Snisimura @echo "${.TARGET}ing the kernel objects" 1511.1Snisimura rm -f eddep *netbsd netbsd.gdb tags *.[io] [a-z]*.s \ 1521.1Snisimura [Ee]rrs linterrs makelinks assym.h.tmp assym.h 1531.1Snisimura 1541.1Snisimura__CLEANDEPEND: .USE 1551.1Snisimura rm -f .depend 1561.1Snisimura 1571.1Snisimuraclean: __CLEANKERNEL 1581.1Snisimura 1591.1Snisimuracleandir distclean: __CLEANKERNEL __CLEANDEPEND 1601.1Snisimura 1611.1Snisimuralint: 1621.1Snisimura @lint -hbxncez -Dvolatile= ${CPPFLAGS} -UKGDB \ 1631.1Snisimura ${CFILES} ioconf.c param.c | \ 1641.1Snisimura grep -v 'static function .* unused' 1651.1Snisimura 1661.1Snisimuratags: 1671.1Snisimura @echo "see $S/kern/Makefile for tags" 1681.1Snisimura 1691.1Snisimuralinks: 1701.1Snisimura egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ 1711.1Snisimura sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink 1721.1Snisimura echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ 1731.1Snisimura sort -u | comm -23 - dontlink | \ 1741.1Snisimura sed 's,../.*/\(.*.o\),rm -f \1; ln -s ../GENERIC/\1 \1,' > makelinks 1751.1Snisimura sh makelinks && rm -f dontlink 1761.1Snisimura 1771.1SnisimuraSRCS= ${LUNA68K}/luna68k/locore.s \ 1781.1Snisimura param.c ioconf.c ${CFILES} ${SFILES} 1791.1Snisimuradepend: .depend 1801.1Snisimura.depend: ${SRCS} assym.h param.c 1811.1Snisimura ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${LUNA68K}/luna68k/locore.s 1821.1Snisimura ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES} 1831.1Snisimura sh $S/kern/genassym.sh ${MKDEP} -f assym.dep ${CFLAGS} \ 1841.1Snisimura ${CPPFLAGS} < ${LUNA68K}/luna68k/genassym.cf 1851.1Snisimura @sed -e 's/.*\.o:.*\.c/assym.h:/' < assym.dep >> .depend 1861.1Snisimura @rm -f assym.dep 1871.4Stron 1881.4Strondependall: depend all 1891.4Stron 1901.1Snisimura 1911.1Snisimura# depend on root or device configuration 1921.1Snisimuraautoconf.o conf.o: Makefile 1931.1Snisimura 1941.1Snisimura# depend on network or filesystem configuration 1951.1Snisimurauipc_proto.o vfs_conf.o: Makefile 1961.1Snisimura 1971.1Snisimura# depend on maxusers 1981.1Snisimuramachdep.o: Makefile 1991.1Snisimura 2001.1Snisimura# depend on CPU configuration 2011.1Snisimuramachdep.c trap.o: Makefile 2021.1Snisimura 2031.1Snisimuralocore.o: ${LUNA68K}/luna68k/locore.s assym.h 2041.1Snisimura ${NORMAL_S} 2051.7Shubertf 2061.7Shubertf# The install target can be redefined by putting a 2071.7Shubertf# install-kernel-${MACHINE_NAME} target into /etc/mk.conf 2081.7ShubertfMACHINE_NAME!= uname -n 2091.7Shubertfinstall: install-kernel-${MACHINE_NAME} 2101.7Shubertf.if !target(install-kernel-${MACHINE_NAME}}) 2111.7Shubertfinstall-kernel-${MACHINE_NAME}: 2121.7Shubertf rm -f /onetbsd 2131.7Shubertf ln /netbsd /onetbsd 2141.7Shubertf cp netbsd /nnetbsd 2151.7Shubertf mv /nnetbsd /netbsd 2161.7Shubertf.endif 2171.1Snisimura 2181.1Snisimura%RULES 219