blob: c868afe9a26e42f3885e3b6bb8a399430949f19f [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001#
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
15ECHO = echo
16MKDIR = mkdir
17UNAME = uname
18
19uname := $(shell uname)
20
21ifeq ($(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
51endif
52
53ifeq ($(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
72endif
73
74LIBDIR=lib/$(PLATFORM)-$(ARCH)
75LAUNCHERLIB=$(LIBDIR)/libLauncher.so
76
77all: 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
90Launcher.h : Launcher.class
91 $(JAVA_HOME)/bin/javah -force Launcher
92
93Launcher.class : Launcher.java
94 $(JAVA_HOME)/bin/javac Launcher.java
95
96java_home:
97ifndef JAVA_HOME
98 @$(ECHO) "ERROR: Your JAVA_HOME environment variable is not set."
99 exit 1
100endif
101