4.9 Including Special Code in the Wrapper GNUmakefiles

This section describes a feature which is usually not needed, so you
may skip it at a first reading. As a prerequisite, you probably need
to have read the section 4.1.2 to make any use of
this section.

It is possible that you may need/want to insert special code in the
GNUmakefile.preamble and GNUmakefile.postamble for the wrappers. For
example, some special flags required to compile an Objective-C library
(the Objective-C wrapper library for your library) against your
Objective-C library.

JIGS itself by default does not generate GNUmakefile.preamble and
GNUmakefile.postamble at all; but it will look in the library
directory for the files

A typical usage of this is to wrap libraries which have not yet been
installed. Normally, you create java wrappers for libraries which you
have already installed. Sometimes though, you need to create java
wrappers for a library before it is installed. In this case, you
might need to help the compiler to find your actual library when it
links the java wrappers.

You would do so by creating a file called

GNUmakefile.wrapper.objc.postamble

and adding to this file something like the following line

ADDITIONAL_LIB_DIRS = -L/opt/nicola/MyLibrary/

Please note that you will need to install your library anyway before
you can use the java wrappers, because the library must be found at
run-time as well!

A classical case in which you need this trick is if you are building
the java wrappers with the library itself (that is, if you have a
GNUmakefile which includes both library.make and
java-wrapper.make and which you use to compile both. In that
case, you need to add

ADDITIONAL_LIB_DIRS = -L../../$(GNUSTEP_OBJ_DIR)

to your GNUmakefile.wrapper.objc.preamble to make sure that,
when the java wrappers are built, the compiler will find the original
library (and you also need to make sure that library.make is
included before java-wrapper.make so that the library is
compiled before the wrappers.