J. Duke | 319a3b9 | 2007-12-01 00:00:00 +0000 | [diff] [blame^] | 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 | |