Makefile.usermode revision 1.17
11.17Sjmcneill# $NetBSD: Makefile.usermode,v 1.17 2011/09/03 15:00:27 jmcneill Exp $ 21.1Sjmcneill 31.1SjmcneillMACHINE_ARCH= usermode 41.1SjmcneillUSETOOLS?= no 51.1SjmcneillNEED_OWN_INSTALL_TARGET?= no 61.1Sjmcneill.include <bsd.own.mk> 71.1Sjmcneill 81.1Sjmcneill## 91.1Sjmcneill## (1) port identification 101.1Sjmcneill## 111.1SjmcneillUSERMODE= $S/arch/usermode 121.1SjmcneillGENASSYM_CONF= ${USERMODE}/usermode/genassym.cf 131.1Sjmcneill 141.1Sjmcneill## 151.1Sjmcneill## (2) compile settings 161.1Sjmcneill## 171.17SjmcneillUSERMODE_HOSTOS!=uname -s 181.10SjmcneillUSERMODE_LIBS= -lrt 191.17Sjmcneill.if ${USERMODE_HOSTOS} == "Linux" 201.17SjmcneillUSERMODE_LIBS+= -lpthread 211.17Sjmcneill.endif 221.14SjmcneillUSERMODE_CPPFLAGS=-U_KERNEL -I/usr/include 231.14SjmcneillUSERMODE_CPPFLAGS+=${CWARNFLAGS} ${NOGCCERROR:D:U-Werror} 241.10Sjmcneill 251.12SreinoudDEFCOPTS= -fno-omit-frame-pointer 261.17SjmcneillCPPFLAGS+= -Dusermode -D__NetBSD__ -Wno-unused-but-set-variable 271.2SjmcneillCPPFLAGS.init_main.c+= -Dmain=kernmain 281.1Sjmcneill 291.14SjmcneillOPT_SDL= %SDL% 301.16SjmcneillOPT_URKELVISOR= %URKELVISOR% 311.16Sjmcneill 321.14Sjmcneill.if !empty(OPT_SDL) 331.14SjmcneillSDL_CFLAGS!= sdl-config --cflags 341.14SjmcneillSDL_LIBS!= sdl-config --libs 351.14SjmcneillUSERMODE_LIBS+= -Wl,-Bdynamic ${SDL_LIBS} 361.14Sjmcneill.endif 371.14Sjmcneill 381.14SjmcneillCPPFLAGS.thunk.c+= ${USERMODE_CPPFLAGS} 391.14SjmcneillCPPFLAGS.thunk_sdl.c+= ${SDL_CFLAGS} ${USERMODE_CPPFLAGS} 401.16SjmcneillCPPFLAGS.urkelvisor.c+= ${USERMODE_CPPFLAGS} 411.8Sjmcneill 421.1Sjmcneill## 431.1Sjmcneill## (3) libkern and compat 441.1Sjmcneill## 451.1SjmcneillKERN_AS= obj 461.6SjmcneillCOMPAT_AS= obj 471.1Sjmcneill 481.1Sjmcneill## 491.1Sjmcneill## (4) local objects, compile rules, and dependencies 501.1Sjmcneill## 511.8SjmcneillMD_OBJS= thunk.o 521.8SjmcneillMD_CFILES= ${USERMODE}/usermode/thunk.c 531.16SjmcneillMD_SFILES= 541.16Sjmcneill 551.16Sjmcneill.if !empty(OPT_URKELVISOR) 561.16SjmcneillMD_OBJS+= urkelvisor.o 571.16SjmcneillMD_CFILES+= ${USERMODE}/usermode/urkelvisor.c 581.16Sjmcneill.endif 591.16Sjmcneill 601.14Sjmcneill.if !empty(OPT_SDL) 611.14SjmcneillMD_OBJS+= thunk_sdl.o 621.14SjmcneillMD_CFILES+= ${USERMODE}/usermode/thunk_sdl.c 631.14Sjmcneill.endif 641.1Sjmcneill 651.1Sjmcneill## 661.1Sjmcneill## (5) link settings 671.1Sjmcneill## 681.8SjmcneillSYSTEM_LD= @${_MKSHMSG} " link ${.CURDIR:T}/${.TARGET}"; \ 691.6Sjmcneill ${_MKSHECHO}\ 701.17Sjmcneill ${CC} -static ${COPTS} -Wl,-Map,$@.map -o $@ '$${SYSTEM_OBJ}' '$${EXTRA_OBJ}' vers.o ${USERMODE_LIBS}; \ 711.17Sjmcneill ${CC} -static ${COPTS} -Wl,-Map,$@.map -o $@ ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o ${USERMODE_LIBS} 721.7SjmcneillNVFLAGS= -n 731.1Sjmcneill 741.1Sjmcneill## 751.1Sjmcneill## (6) port specific target dependencies 761.1Sjmcneill## 771.1Sjmcneill 781.9Sjmcneill.if !make(obj) && !make(clean) && !make(cleandir) 791.9Sjmcneill.BEGIN: 801.9Sjmcneill @rm -f i386 && \ 811.9Sjmcneill ln -s $S/arch/i386/include i386 821.9Sjmcneill.endif 831.9Sjmcneill 841.15Sjmcneillthunk.d: ${USERMODE}/usermode/thunk.c 851.15Sjmcneill ${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \ 861.15Sjmcneill ${CPPFLAGS.thunk.c} ${USERMODE}/usermode/thunk.c 871.15Sjmcneill 881.8Sjmcneillthunk.o: ${USERMODE}/usermode/thunk.c 891.13Sjmcneill ${CC} ${CPPFLAGS.thunk.c} -c -o $@ ${USERMODE}/usermode/thunk.c 901.8Sjmcneill 911.15Sjmcneillthunk_sdl.d: ${USERMODE}/usermode/thunk.c 921.15Sjmcneill ${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \ 931.15Sjmcneill ${CPPFLAGS.thunk_sdl.c} ${USERMODE}/usermode/thunk_sdl.c 941.15Sjmcneill 951.14Sjmcneillthunk_sdl.o: ${USERMODE}/usermode/thunk_sdl.c 961.14Sjmcneill ${CC} ${CPPFLAGS.thunk_sdl.c} -c -o $@ ${USERMODE}/usermode/thunk_sdl.c 971.14Sjmcneill 981.16Sjmcneillurkelvisor.d: ${USERMODE}/usermode/urkelvisor.c 991.16Sjmcneill ${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \ 1001.16Sjmcneill ${CPPFLAGS.urkelvisor.c} ${USERMODE}/usermode/urkelvisor.c 1011.16Sjmcneill 1021.16Sjmcneillurkelvisor.o: ${USERMODE}/usermode/urkelvisor.c 1031.16Sjmcneill ${CC} ${CPPFLAGS.urkelvisor.c} -c -o $@ ${USERMODE}/usermode/urkelvisor.c 1041.16Sjmcneill 1051.1Sjmcneill## 1061.1Sjmcneill## (7) misc settings 1071.1Sjmcneill## 1081.1Sjmcneill 1091.1Sjmcneill## 1101.1Sjmcneill## (8) config(8) generated machinery 1111.1Sjmcneill%INCLUDES 1121.1Sjmcneill 1131.1Sjmcneill%OBJS 1141.1Sjmcneill 1151.1Sjmcneill%CFILES 1161.1Sjmcneill 1171.1Sjmcneill%SFILES 1181.1Sjmcneill 1191.1Sjmcneill%LOAD 1201.1Sjmcneill 1211.1Sjmcneill%RULES 1221.1Sjmcneill 1231.1Sjmcneill## 1241.1Sjmcneill## (9) port independent kernel machinery 1251.1Sjmcneill## 1261.1Sjmcneill.include "$S/conf/Makefile.kern.inc" 1271.1Sjmcneill 1281.1Sjmcneill## 1291.1Sjmcneill## (10) appending make options 1301.1Sjmcneill## 1311.1Sjmcneill%MAKEOPTIONSAPPEND 132