vx32

Local 9vx git repository for patches.
git clone git://r-36.net/vx32
Log | Files | Refs

Makefrag (5669B)


      1 ifeq ($(OS),linux)
      2 PLAN9VX=1
      3 PLAN9GUI=x11
      4 PLAN9AUDIO=unix
      5 PLAN9PCAP=nopcap
      6 PLAN9TAP=ethertap
      7 endif
      8 
      9 ifeq ($(OS),darwin)
     10 PLAN9VX=1
     11 PLAN9GUI=osx
     12 PLAN9AUDIO=none
     13 PLAN9PCAP=nopcap
     14 PLAN9TAP=ethertap
     15 endif
     16 
     17 ifeq ($(OS),freebsd)
     18 PLAN9VX=1
     19 PLAN9GUI=x11
     20 PLAN9AUDIO=unix
     21 PLAN9PCAP=nopcap
     22 PLAN9TAP=notap
     23 endif
     24 
     25 # Boot files
     26 # Do not remove:
     27 # - boot, needed to boot
     28 # - factotum, used by libauth
     29 PLAN9BOOT=\
     30 	9660srv \
     31 	boot \
     32 	bzfs \
     33 	factotum \
     34 	fossil \
     35 	kfs \
     36 	rootfs \
     37 	venti \
     38 
     39 # Default argument to boot
     40 PLAN9BOOTARG=local!/boot/rootfs
     41 
     42 # If you don't have/want X11
     43 #PLAN9GUI=nogui
     44 
     45 # Virtual ethernet devices
     46 #PLAN9PCAP=etherpcap
     47 #PLAN9PCAP=nopcap
     48 #PLAN9TAP=ethertap
     49 #PLAN9TAP=notap
     50 
     51 ifeq ($(PLAN9VX),1)
     52 
     53 PLAN9SCRIPTS = \
     54 	$(addprefix $(BINDIR)/, \
     55 		9vxc \
     56 		9vxp \
     57 		acmevx \
     58 		rcvx \
     59 		tap \
     60 	)
     61 
     62 all: 9vx/9vx
     63 9vx/install: $(BINDIR)/9vx $(PLAN9SCRIPTS)
     64 
     65 $(BINDIR)/9vx: 9vx/9vx
     66 	$(INSTALL) $< $@
     67 
     68 $(BINDIR)/%: ../bin/%
     69 	$(INSTALL) $< $@
     70 
     71 PLAN9_BOOT_OBJS = $(PLAN9BOOT:%=9vx/%.o)
     72 
     73 PLAN9_OBJS = \
     74 	$(addprefix 9vx/, \
     75 		bootinit.o \
     76 		conf.o \
     77 		devaudio.o \
     78 		devaudio-$(PLAN9AUDIO).o \
     79 		devfs-posix.o \
     80 		devmntloop.o \
     81 		devmouse.o \
     82 		devram.o \
     83 		devtab.o \
     84 		kprocdev.o \
     85 		label.o \
     86 		load.o \
     87 		main.o \
     88 		mmu.o \
     89 		sched.o \
     90 		sdloop.o \
     91 		stub.o \
     92 		term.o \
     93 		time.o \
     94 		trap.o \
     95 		tty.o \
     96 		vx32.o \
     97 	)
     98 
     99 ifeq ($(OS),darwin)
    100 PLAN9_OBJS := $(PLAN9_OBJS) 9vx/osx/signal.o 9vx/osx/cmpswap.o
    101 endif
    102 
    103 # While we could do an || here on the os, leave this: linux 
    104 # or freebsd may later differ in what they do. 
    105 ifeq ($(OS),linux)
    106 PLAN9_OBJS := $(PLAN9_OBJS) 9vx/gccmagic/cmpswap.o
    107 endif
    108 
    109 ifeq ($(OS),freebsd)
    110 PLAN9_OBJS := $(PLAN9_OBJS) 9vx/gccmagic/cmpswap.o
    111 endif
    112 
    113 PLAN9_A_OBJS = \
    114 	$(addprefix 9vx/a/, \
    115 		allocb.o \
    116 		auth.o \
    117 		chan.o \
    118 		classmask.o \
    119 		cleanname.o \
    120 		convD2M.o \
    121 		convM2D.o \
    122 		convS2M.o \
    123 		convM2S.o \
    124 		dev.o \
    125 		devcap.o \
    126 		devcons.o \
    127 		devdraw.o \
    128 		devdup.o \
    129 		devenv.o \
    130 		devmnt.o \
    131 		devproc.o \
    132 		devpipe.o \
    133 		devroot.o \
    134 		devsd.o \
    135 		devsrv.o \
    136 		devssl.o \
    137 		devtls.o \
    138 		eipfmt.o \
    139 		encodefmt.o \
    140 		fault.o \
    141 		fcallfmt.o \
    142 		fmt.o \
    143 		getfields.o \
    144 		ipaux.o \
    145 		latin1.o \
    146 		page.o \
    147 		parse.o \
    148 		parseip.o \
    149 		part.o \
    150 		pgrp.o \
    151 		print.o \
    152 		proc.o \
    153 		qio.o \
    154 		qlock.o \
    155 		sdscsi.o \
    156 		segment.o \
    157 		strecpy.o \
    158 		swap.o \
    159 		sysfile.o \
    160 		sysproc.o \
    161 		thwack.o \
    162 		tokenize.o \
    163 		u16.o \
    164 		u32.o \
    165 		u64.o \
    166 		unthwack.o \
    167 		utf.o \
    168 	)
    169 
    170 PLAN9_IP_OBJS = \
    171 	$(addprefix 9vx/,\
    172 		devip.o \
    173 		devip-posix.o \
    174 		$(PLAN9PCAP).o \
    175 		$(PLAN9TAP).o \
    176 		vether.o \
    177 	) \
    178 	$(addprefix 9vx/a/,\
    179 		devaoe.o \
    180 		devether.o \
    181 		netif.o \
    182 		sdaoe.o \
    183 	) \
    184 	$(addprefix 9vx/a/ip/,\
    185 		arp.o \
    186 		chandial.o \
    187 		devip.o \
    188 		esp.o \
    189 		ethermedium.o \
    190 		gre.o \
    191 		icmp.o \
    192 		icmp6.o \
    193 		il.o \
    194 		inferno.o \
    195 		ip.o \
    196 		ipaux.o \
    197 		ipifc.o \
    198 		ipmux.o \
    199 		iproute.o \
    200 		ipv6.o \
    201 		loopbackmedium.o \
    202 		netdevmedium.o \
    203 		netlog.o \
    204 		nullmedium.o \
    205 		pktmedium.o \
    206 		ptclbsum.o \
    207 		tcp.o \
    208 		udp.o \
    209 	)
    210 ifneq ($(PLAN9PCAP), nopcap)
    211 PLAN9_IP_LIBS = -lpcap
    212 else
    213 PLAN9_IP_LIBS =
    214 endif
    215 
    216 PLAN9_nogui_OBJS = \
    217 	$(addprefix 9vx/,\
    218 		nogui.o \
    219 	)
    220 
    221 PLAN9_nogui_LIBS = 
    222 
    223 PLAN9_x11_OBJS = \
    224 	$(addprefix 9vx/x11/, \
    225 		x11-draw.o \
    226 		x11-init.o \
    227 		x11-itrans.o \
    228 		x11-kernel.o \
    229 		x11-keysym2rune.o \
    230 	)
    231 PLAN9_x11_LIBS = -L/usr/X11R6/lib -L/usr/local/lib -lX11
    232 
    233 PLAN9_osx_OBJS =\
    234 	$(addprefix 9vx/osx/, \
    235 		screen.o \
    236 		draw.o \
    237 	)
    238 PLAN9_osx_LIBS = -ggdb -framework Carbon -framework QuickTime
    239 
    240 
    241 PLAN9_GUI_OBJS = $(PLAN9_$(PLAN9GUI)_OBJS)
    242 PLAN9_GUI_LIBS = $(PLAN9_$(PLAN9GUI)_LIBS)
    243 
    244 PLAN9_DEPS = \
    245 	$(PLAN9_OBJS) \
    246 	$(PLAN9_A_OBJS) \
    247 	$(PLAN9_BOOT_OBJS) \
    248 	$(PLAN9_IP_OBJS) \
    249 	$(PLAN9_GUI_OBJS) \
    250 	9vx/libsec/libsec.a \
    251 	9vx/libmemlayer/libmemlayer.a \
    252 	9vx/libmemdraw/libmemdraw.a \
    253 	9vx/libdraw/libdraw.a \
    254 	libvx32/libvx32.a \
    255 
    256 9vx/9vx: $(PLAN9_DEPS)
    257 	$(HOST_CC) -o $@ $(HOST_LDFLAGS) $(PLAN9_DEPS) $(PLAN9_GUI_LIBS) $(PLAN9_IP_LIBS) -lpthread 
    258 
    259 9vx/a/%.o: 9vx/a/%.c
    260 	$(HOST_CC) $(HOST_CFLAGS) -I. -I9vx -I9vx/a -Wall -Wno-missing-braces -c -o $@ $<
    261 
    262 9vx/x11/%.o: 9vx/x11/%.c
    263 	$(HOST_CC) $(HOST_CFLAGS) -I. -I9vx -I9vx/a -I/usr/X11R6/include -I/usr/local/include -Wall -Wno-missing-braces -c -o $@ $<
    264 
    265 9vx/osx/%.o: 9vx/osx/%.c
    266 	$(HOST_CC) $(HOST_CFLAGS) -I. -I9vx -I9vx/a -Wall -Wno-missing-braces -c -o $@ $<
    267 
    268 9vx/%.o: 9vx/%.c
    269 	$(HOST_CC) $(HOST_CFLAGS) -D "BOOTARG=\"$(PLAN9BOOTARG)\"" -I. -I9vx -I9vx/a -Wall -Wno-missing-braces -c -o $@ $<
    270 
    271 9vx/%.o: 9vx/%.S
    272 	$(HOST_CC) $(HOST_CFLAGS) -I. -I9vx -I9vx/a -Wall -Wno-missing-braces -c -o $@ $<
    273 
    274 9vx/bootinit.c: 9vx/mkbootinitc
    275 	9vx/mkbootinitc $(PLAN9BOOT) >$@
    276 
    277 9vx/data2s: 9vx/data2s.c
    278 	$(HOST_CC) -o $@ $<
    279 
    280 # We need the sed command to have a correct variable name for 9660srv
    281 9vx/%.S: 9vx/%.9 9vx/data2s
    282 	./9vx/data2s `echo $* | sed 's/^[0-9]/_&/'` < $< >$@_ && mv $@_ $@
    283 
    284 9vx/%.S: 9vx/%.bz2 9vx/data2s
    285 	./9vx/data2s `echo $* | sed 's/^[0-9]/_&/'` < $< >$@_ && mv $@_ $@
    286 
    287 9vx/a/errstr.h: 9vx/a/error.h
    288 	sed 's/extern //; s!;.*/\* ! = "!; s! \*\/!";!' 9vx/a/error.h >9vx/a/errstr.h
    289 
    290 9vx/a/proc.o: 9vx/a/errstr.h
    291 
    292 9vx/stub.o: 9vx/kerndate.h
    293 
    294 9vx/kerndate.h:
    295 	echo 'ulong kerndate =' `date +%s` ';' >9vx/kerndate.h
    296 
    297 .PHONY: 9vx/kerndate.h
    298 
    299 9vx/AUTOGEN: 9vx/a/AUTOGEN 9vx/9vx
    300 
    301 .PHONY: 9vx/AUTOGEN
    302 
    303 9vx/a/AUTOGEN:
    304 	cd 9vx/a/; ./AUTOGEN -r $(ROOT)
    305 
    306 .PHONY: 9vx/a/AUTOGEN
    307 
    308 CLEAN_FILES += \
    309 	9vx/*.d \
    310 	9vx/*.o \
    311 	9vx/a/*.d \
    312 	9vx/a/*.o \
    313 	9vx/x11/*.d \
    314 	9vx/x11/*.o \
    315 	9vx/kerndate.h \
    316 	9vx/a/errstr.h \
    317 	9vx/9vx \
    318 	9vx/bootinit.c \
    319 	9vx/data2s \
    320 	9vx/9660srv.S \
    321 	9vx/boot.S \
    322 	9vx/bzfs.S \
    323 	9vx/factotum.S \
    324 	9vx/fossil.S \
    325 	9vx/kfs.S \
    326 	9vx/rootfs.S \
    327 	9vx/venti.S
    328 
    329 include 9vx/libdraw/Makefrag
    330 include 9vx/libmemlayer/Makefrag
    331 include 9vx/libmemdraw/Makefrag
    332 include 9vx/libsec/Makefrag
    333 
    334 endif