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