Listing 5. Makefile

#/home/ptkatch/src/SERIAL/Makefile to build
# IBM JDK compliant library:
# libSerial.so - to configure serial ports
#
JAVAHOME=/usr/local/java/ibmjdk118
JAVABIN=$(JAVAHOME)/bin
JAVAC=$(JAVABIN)/javac
JAVAH=$(JAVABIN)/javah
JAVA=$(JAVABIN)/java
INCLUDE=$(JAVAHOME)/include
SRCDIR=pos
INSTDIR=/usr/local/lib
CLASS=LinuxSerial
SOURCE=$(SRCDIR)/$(CLASS).java
#DEBUG=DEBUG
DEBUG=RELEASE
CFLAGS=-g -O -Wall -fPIC -DHAVE_CONFIG_H -D$(DEBUG)\
    -shared -I $(INCLUDE) -I $(INCLUDE)/linux -I $\
    (INCLUDE)/genunix -I $(INCLUDE)/native_threads\
    -I $(SRCDIR)
.PHONY: runtest clean install all
all: lib$(CLASS).so
lib$(CLASS).so: lib$(CLASS).c $(SRCDIR)/\
$(SRCDIR)_$(CLASS).c\
  $(SRCDIR)/$(SRCDIR)_$(CLASS).h
    @echo building $@
    gcc $(CFLAGS) $< $(SRCDIR)/$(SRCDIR)_$(CLASS).c\
    -o $@
$(SRCDIR)/$(SRCDIR)_$(CLASS).c: $(SRCDIR)/\
$(CLASS).class
    @echo generating stubs
    $(JAVAH) -d $(SRCDIR) -stubs $(SRCDIR).$(CLASS)
$(SRCDIR)/$(SRCDIR)_$(CLASS).h: $(SRCDIR)/\
$(CLASS).class
    @echo generating header
    $(JAVAH) -d $(SRCDIR) $(SRCDIR).$(CLASS)
$(SRCDIR)/$(CLASS).class: $(SOURCE)
    @echo compiling $<
    $(JAVAC) -O $<
clean:
    @echo cleaning
    -rm -f lib$(CLASS).so $(SRCDIR)/\
$(SRCDIR)_$(CLASS).*\
    $(SRCDIR)/$(CLASS).class $(INSTDIR)/\
lib$(CLASS).so
install:
    cp lib$(CLASS).so $(INSTDIR)