Makefile.usermode revision 1.17
1# $NetBSD: Makefile.usermode,v 1.17 2011/09/03 15:00:27 jmcneill Exp $ 2 3MACHINE_ARCH= usermode 4USETOOLS?= no 5NEED_OWN_INSTALL_TARGET?= no 6.include <bsd.own.mk> 7 8## 9## (1) port identification 10## 11USERMODE= $S/arch/usermode 12GENASSYM_CONF= ${USERMODE}/usermode/genassym.cf 13 14## 15## (2) compile settings 16## 17USERMODE_HOSTOS!=uname -s 18USERMODE_LIBS= -lrt 19.if ${USERMODE_HOSTOS} == "Linux" 20USERMODE_LIBS+= -lpthread 21.endif 22USERMODE_CPPFLAGS=-U_KERNEL -I/usr/include 23USERMODE_CPPFLAGS+=${CWARNFLAGS} ${NOGCCERROR:D:U-Werror} 24 25DEFCOPTS= -fno-omit-frame-pointer 26CPPFLAGS+= -Dusermode -D__NetBSD__ -Wno-unused-but-set-variable 27CPPFLAGS.init_main.c+= -Dmain=kernmain 28 29OPT_SDL= %SDL% 30OPT_URKELVISOR= %URKELVISOR% 31 32.if !empty(OPT_SDL) 33SDL_CFLAGS!= sdl-config --cflags 34SDL_LIBS!= sdl-config --libs 35USERMODE_LIBS+= -Wl,-Bdynamic ${SDL_LIBS} 36.endif 37 38CPPFLAGS.thunk.c+= ${USERMODE_CPPFLAGS} 39CPPFLAGS.thunk_sdl.c+= ${SDL_CFLAGS} ${USERMODE_CPPFLAGS} 40CPPFLAGS.urkelvisor.c+= ${USERMODE_CPPFLAGS} 41 42## 43## (3) libkern and compat 44## 45KERN_AS= obj 46COMPAT_AS= obj 47 48## 49## (4) local objects, compile rules, and dependencies 50## 51MD_OBJS= thunk.o 52MD_CFILES= ${USERMODE}/usermode/thunk.c 53MD_SFILES= 54 55.if !empty(OPT_URKELVISOR) 56MD_OBJS+= urkelvisor.o 57MD_CFILES+= ${USERMODE}/usermode/urkelvisor.c 58.endif 59 60.if !empty(OPT_SDL) 61MD_OBJS+= thunk_sdl.o 62MD_CFILES+= ${USERMODE}/usermode/thunk_sdl.c 63.endif 64 65## 66## (5) link settings 67## 68SYSTEM_LD= @${_MKSHMSG} " link ${.CURDIR:T}/${.TARGET}"; \ 69 ${_MKSHECHO}\ 70 ${CC} -static ${COPTS} -Wl,-Map,$@.map -o $@ '$${SYSTEM_OBJ}' '$${EXTRA_OBJ}' vers.o ${USERMODE_LIBS}; \ 71 ${CC} -static ${COPTS} -Wl,-Map,$@.map -o $@ ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o ${USERMODE_LIBS} 72NVFLAGS= -n 73 74## 75## (6) port specific target dependencies 76## 77 78.if !make(obj) && !make(clean) && !make(cleandir) 79.BEGIN: 80 @rm -f i386 && \ 81 ln -s $S/arch/i386/include i386 82.endif 83 84thunk.d: ${USERMODE}/usermode/thunk.c 85 ${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \ 86 ${CPPFLAGS.thunk.c} ${USERMODE}/usermode/thunk.c 87 88thunk.o: ${USERMODE}/usermode/thunk.c 89 ${CC} ${CPPFLAGS.thunk.c} -c -o $@ ${USERMODE}/usermode/thunk.c 90 91thunk_sdl.d: ${USERMODE}/usermode/thunk.c 92 ${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \ 93 ${CPPFLAGS.thunk_sdl.c} ${USERMODE}/usermode/thunk_sdl.c 94 95thunk_sdl.o: ${USERMODE}/usermode/thunk_sdl.c 96 ${CC} ${CPPFLAGS.thunk_sdl.c} -c -o $@ ${USERMODE}/usermode/thunk_sdl.c 97 98urkelvisor.d: ${USERMODE}/usermode/urkelvisor.c 99 ${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \ 100 ${CPPFLAGS.urkelvisor.c} ${USERMODE}/usermode/urkelvisor.c 101 102urkelvisor.o: ${USERMODE}/usermode/urkelvisor.c 103 ${CC} ${CPPFLAGS.urkelvisor.c} -c -o $@ ${USERMODE}/usermode/urkelvisor.c 104 105## 106## (7) misc settings 107## 108 109## 110## (8) config(8) generated machinery 111%INCLUDES 112 113%OBJS 114 115%CFILES 116 117%SFILES 118 119%LOAD 120 121%RULES 122 123## 124## (9) port independent kernel machinery 125## 126.include "$S/conf/Makefile.kern.inc" 127 128## 129## (10) appending make options 130## 131%MAKEOPTIONSAPPEND 132