1 # 2 # 3 # Makefile for building libLauncher.so 4 # 5 # To build libLauncher.so requires :- 6 # JAVA_HOME environment variable 7 # cc (Solaris) or gcc (Linux) on PATH 8 # 9 # The library is created in a architecture specific directory :- 10 # 11 # lib/solaris-sparc/libLauncher.so (Solaris/SPARC) 12 # lib/solaris-i586/libLauncher.so (Solaris/x86) 13 # lib/linux-i586/libLauncher.so (Linux/x86) 14 15 ECHO = echo 16 MKDIR = mkdir 17 UNAME = uname 18 19 uname := $(shell uname) 20 21 ifeq ($(uname), SunOS) 22 PLATFORM = solaris 23 ISAINFO = isainfo 24 ifndef ARCH_DATA_MODEL 25 ARCH_DATA_MODEL=32 26 endif 27 ifeq ($(ARCH_DATA_MODEL), 32) 28 archExpr = case "`$(UNAME) -p`" in \ 29 i386) \ 30 $(ECHO) i586 \ 31 ;; \ 32 sparc*) \ 33 $(ECHO) sparc \ 34 ;; \ 35 *) \ 36 $(UNAME) -p \ 37 ;; \ 38 esac 39 ARCH := $(shell $(archExpr) ) 40 else 41 ARCH := $(shell $(ISAINFO) -n) 42 endif 43 CC = cc 44 LD = ld 45 CFLAGS = -D_REENTRANT -D__solaris__ 46 LDFLAGS_COMMON = -G 47 EXTRA_LIBS = -lc 48 ifeq ($(ARCH_DATA_MODEL), 64) 49 CC += -xarch=v9 50 endif 51 endif 52 53 ifeq ($(uname), Linux) 54 PLATFORM = linux 55 archExpr = case "`$(UNAME) -m`" in \ 56 i[3-6]86) \ 57 $(ECHO) i586 \ 58 ;; \ 59 sparc*) \ 60 $(ECHO) sparc \ 61 ;; \ 62 *) \ 63 $(UNAME) -m \ 64 ;; \ 65 esac 66 ARCH := $(shell $(archExpr) ) 67 CC = gcc 68 CFLAGS = -fno-strict-aliasing -fPIC -W -Wall 69 LD = ld 70 LDFLAGS_COMMON = -shared 71 EXTRA_LIBS = -lc 72 endif 73 74 LIBDIR=lib/$(PLATFORM)-$(ARCH) 75 LAUNCHERLIB=$(LIBDIR)/libLauncher.so 76 77 all: java_home $(LAUNCHERLIB) 78 79 $(LAUNCHERLIB) : $(LIBDIR) $(LIBDIR)/Launcher.o 80 $(LD) $(LDFLAGS_COMMON) -o $(LAUNCHERLIB) $(LIBDIR)/Launcher.o $(EXTRA_LIBS) 81 82 $(LIBDIR): 83 @$(MKDIR) -p $(LIBDIR) 84 85 $(LIBDIR)/Launcher.o : Launcher.c \ 86 Launcher.h 87 $(CC) -c $(CFLAGS) -o $(LIBDIR)/Launcher.o \ 88 -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(PLATFORM) Launcher.c 89 90 Launcher.h : Launcher.class 91 $(JAVA_HOME)/bin/javah -force Launcher 92 93 Launcher.class : Launcher.java 94 $(JAVA_HOME)/bin/javac Launcher.java 95 96 java_home: 97 ifndef JAVA_HOME 98 @$(ECHO) "ERROR: Your JAVA_HOME environment variable is not set." 99 exit 1 100 endif 101