Makefrag - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) 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