old-www/LDP/LG/issue28/hamilton5.html

58 lines
1.3 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Building an Audio CD Player, Listing 5</title>
</head>
<body bgcolor="#FFFFFF" text="000000">
<p><HR> <P>
<h3>Listing 5. Makefile</h3>
<p><HR> <P>
<pre>
# Generate Position Independent Code for dynamic linking
# and create a shared object module for JCDdriver to load at run time.
#
# Select ARCHOS, CFLAGS, and LDFLAGS for your operating system.
#
# Linux
ARCHOS=ix86-Linux
CFLAGS= -O -fPIC -I/usr/local/java/include/solaris -I/usr/local/java/include
LDFLAGS= -shared -Wl,-soname,Jcd_Drive
#
# IRIX
#ARCHOS=mips-Irix
#CFLAGS= -O -I/usr/java/include/irix -I/usr/java/include
#LDFLAGS= -shared -Wl,-soname,Jcd_Drive -lcdaudio -lmediad -lds
#
JAVAC= javac
#JAVAC= /usr/local/java/bin/javac
#JAVAC= espresso
NATIVE_SRC= Jcd_Drive_$(ARCHOS)
%.class : %.java
$(JAVAC) $<
Jcd.class: Jcd.java Jcd_Drive.so
$(JAVAC) Jcd.java
chmod +x Jcd.class
Jcd_Drive.so: $(NATIVE_SRC).o Jcd_Drive.o
cc -o Jcd_Drive.so Jcd_Drive.o $(NATIVE_SRC).o $(LDFLAGS)
mkdir -p native/$(ARCHOS)
cp Jcd_Drive.so native/$(ARCHOS)/Jcd_Drive.so
Jcd_Drive.h: Drive.class
javah Jcd.Drive
touch Jcd_Drive.h
Jcd_Drive.c: Drive.java
javah -stubs Jcd.Drive
touch Jcd_Drive.c
$(NATIVE_SRC).c: Jcd_Drive.h
</pre>
</body>
</html>