Makefrag - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       Makefrag (2622B)
       ---
            1 # Main top-level makefile fragment for the vx32 virtual machine.
            2 
            3 # Compiler flags common to both host and VX32 environment files.
            4 COMMON_CFLAGS = -m32  -g -O2 -MD -std=gnu99 -I. -fno-stack-protector $(CFLAGS) -DARCH=i386
            5 COMMON_LDFLAGS = -g -L. $(LDFLAGS)
            6 
            7 ifeq ($(OS),darwin)
            8         COMMON_CFLAGS += -m32 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -DARCH=i386
            9         COMMON_LDFLAGS += -m32
           10 endif
           11 
           12  # Host environment compiler options
           13 HOST_CC                := $(CC) -fno-inline -m32  -DARCH=i386
           14 ifeq ($(OS),darwin)
           15         HOST_CC                := $(HOST_CC)  -D_XOPEN_SOURCE
           16 endif
           17 HOST_LD                := $(LD) -arch i386
           18 HOST_AR                := $(AR)
           19 HOST_LDFLAGS        := $(COMMON_LDFLAGS)
           20 HOST_CFLAGS        := $(COMMON_CFLAGS)
           21 
           22 # VX32 environment compiler options
           23 # If you build your own vx32-specific copies of the GNU
           24 # tools (see README), you can refer to them here. 
           25 # On most x86 systems, though, the standard gcc is fine.
           26 # VX32_CC                := vx32-gcc
           27 # VX32_LD                := vx32-ld
           28 # VX32_AR                := vx32-ar
           29 # VX32_OBJCOPY        := vx32-objcopy
           30 VX32_CC                := gcc -m32
           31 VX32_LD                := ld -melf_i386
           32 VX32_AR                := ar
           33 VX32_OBJCOPY        := objcopy
           34 
           35 VX32_CFLAGS := -nostdinc -Ilibvxc/include $(COMMON_CFLAGS)
           36 VX32_CFLAGS += $(shell $(VX32_CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)
           37 
           38 VX32_LDFLAGS := -Llibvxc -L$(dir $(shell $(VX32_CC) -print-libgcc-file-name)) \
           39                 $(COMMON_LDFLAGS) libvxc/vx32/crt0.o
           40 VX32_LDLIBS := -lc -lgcc
           41 
           42 # Set compiler options if we should generate x87 FPU code.
           43 HAVE_X87 = yes
           44 ifdef HAVE_X87
           45 VX32_CFLAGS += -m80387 -mfp-ret-in-387
           46 endif
           47 
           48 
           49 INSTALL = install
           50 
           51 # there's only one thing we really care about. 9vx
           52 9vx/9vx:
           53 # Make sure that 'all' is the first target
           54 all: 
           55 
           56 # Install libvx32 too
           57 install: 9vx/install libvxc/install vxlinux/install vxrun/install
           58 
           59 # Eliminate default suffix rules
           60 .SUFFIXES:
           61 
           62 # Delete target files if there is an error (or make is interrupted)
           63 .DELETE_ON_ERROR:
           64 
           65 
           66 # Include Makefrags for subdirectories
           67 include libvxc/Makefrag
           68 include libvx32/Makefrag
           69 include vxrun/Makefrag
           70 include vxlinux/Makefrag
           71 include vxa/Makefrag                # VXA decoders
           72 include hash/Makefrag                # cryptographic hash algorithms
           73 include micro/Makefrag                # microbenchmarks
           74 include 9vx/Makefrag        # Plan 9 VX
           75 include test/Makefrag                # vx32 tests
           76 
           77 DEPS_FILES := $(wildcard */*.d */*/*.d */*/*/*.d)
           78 CLEAN_FILES += .deps $(DEPS_FILES)
           79 
           80 clean:
           81         rm -f $(CLEAN_FILES)
           82 
           83 # This magic automatically generates makefile dependencies
           84 # for header files included from C source files we compile,
           85 # and keeps those dependencies up-to-date every time we recompile.
           86 # See 'mergedep.pl' for more information.
           87 .deps: $(DEPS_FILES)
           88         @mkdir -p $(@D)
           89         @$(PERL) $(top_srcdir)/mergedep.pl $@ $^
           90 
           91 -include .deps
           92