# # This is a Makefile stub which handles the creation of Linux DLL-style shared # libraries. # # In order to use this stub, the following makefile variables must be defined. # # DLL_ADDRESS = 0x80000000 # DLL_JUMPSIZE = 0x1000 # DLL_GOTSIZE = 0x1000 # DLL_VERSION = 1.0 # DLL_IMAGE = libce # DLL_STUB = libcom_err # DLL_MYDIR = et # DLL_INSTALL_DIR = $(SHLIBDIR) # all:: image # # This is a horrible hack to try to find libgcc.a --- the DLL documentation # states that you should just be able to do -lgcc, but modern gcc # installation packages don't install /usr/lib/libgcc.a --- as well they # shouldn't since libgcc.a can be gcc version dependent. # If this hack doesn't work, try replacing it with a hardcoded path to # libgcc.a, or -lgcc. # #DLL_LIBGCC ="`$(CC) -v 2>&1 | head -1 | \ # sed -e 's;[^/]*;;' -e 's/specs/libgcc.a/'`" DLL_LIBGCC ="`$(CC) --print-libgcc-file-name`" image: $(DLL_IMAGE).so.$(DLL_VERSION) $(DLL_IMAGE).so.$(DLL_VERSION): $(OBJS) ld -shared -o $(DLL_IMAGE).so.$(DLL_VERSION) \ -soname $(DLL_IMAGE).so.1 /usr/lib/crtbeginS.o $(OBJS) /usr/lib/crtendS.o install:: $(DLL_IMAGE).so.$(DLL_VERSION) $(INSTALLBIN) $(DLL_IMAGE).so.$(DLL_VERSION) \ $(DLL_INSTALL_DIR)/$(DLL_IMAGE).so.$(DLL_VERSION) -ldconfig install-libs:: $(DLL_STUB).sa $(INSTALLLIB) $(DLL_STUB).sa $(LIBDIR)/$(DLL_STUB).sa $(CHMOD) 644 $(LIBDIR)/$(DLL_STUB).sa $(RANLIB) $(LIBDIR)/$(DLL_STUB).sa $(CHMOD) $(LIBMODE) $(LIBDIR)/$(DLL_STUB).sa install-tree:: $(DLL_IMAGE).so.$(DLL_VERSION) rm -f ../../shlibs/$(DLL_IMAGE).so.$(DLL_VERSION) cp $(DLL_IMAGE).so.$(DLL_VERSION) ../../shlibs strip ../../shlibs/$(DLL_IMAGE).so.$(DLL_VERSION) chmod 555 ../../shlibs/$(DLL_IMAGE).so.$(DLL_VERSION) clean:: (cd jump; $(RM) *~ *.o *.s jump.log size.nm) $(RM) ../$(DLL_STUB).sa $(DLL_STUB).sa $(DLL_IMAGE).so.$(DLL_VERSION)