Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
263 lines (229 sloc) 7.07 KB
###################################################################
#
## Makefile for building javacurl.nlm (NetWare version - gnu make)
## Use: make -f Makefile.netware
##
## Comments to: Guenter Knauf <eflash@gmx.net>
#
###################################################################
# Edit the path below to point to the base of your Novell NDK.
ifndef NDKBASE
NDKBASE = c:/novell
endif
# Edit the path below to point to the base of your Zlib sources.
ifndef ZLIB_PATH
#ZLIB_PATH = ../../zlib-1.2.3
ZLIB_PATH = ../../cw/zlib-1.2.3
endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
OPENSSL_PATH = ../../sdks/openssl_nw-bsd-0.9.8g
endif
# Edit the path below to point to the base of your cURL source.
LIBCURL_PATH = ../../gccnlm/curl-7.17.1
# Edit the path below to point to the base of your NetWare Java SDK.
JDK = ../../sdks/java-nw
INSTDIR = testjavacurl
TARGET = javacurl
VERMAJ = 0
VERMIN = 2
VERREV = 0
DESCR = $(TARGET) - Java binding to the cURL library
COPYR = Copyright (c) 1996 - 2008, Daniel Stenberg, <daniel@haxx.se>
#MTSAFE = NO
MTSAFE = YES
#SCREEN = $(TARGET)
MODULES = libcurl
# Edit the var below to point to your lib architecture.
ifndef LIBARCH
# LIBARCH = CLIB
LIBARCH = LIBC
endif
# The following line defines your compiler.
ifdef METROWERKS
CC = mwccnlm
else
CC = gcc
endif
PERL = perl
# RM = rm -f
CP = cp -afv
# if you want to mark the target as MTSAFE you will need a tool for
# generating the xdc data for the linker; here's a minimal tool:
# http://www.gknw.net/development/prgtools/mkxdc.zip
MPKXDC = mkxdc
# must be equal to DEBUG or NDEBUG
DB = NDEBUG
# DB = DEBUG
# Optimization: -O<n> or debugging: -g
OPT = -O2
# Global flags for all compilers
CFLAGS = $(OPT) -D$(DB) -DNETWARE -DN_PLAT_NLM -nostdinc
ifeq ($(CC),mwccnlm)
LD = mwldnlm
LDFLAGS = -nostdlib $(PRELUDE) $(OBJS) -o $(TARGET).nlm -commandfile
CFLAGS += -gccinc -inline off -opt nointrinsics -inst mmx -proc 586
CFLAGS += -relax_pointers
#CFLAGS += -w on -ansi strict
#CFLAGS += -w on,nounused,nounusedexpr -ansi strict
ifeq ($(LIBARCH),LIBC)
CFLAGS += -align 4
PRELUDE = $(SDK_LIBC)/imports/libcpre.o
else
CFLAGS += -align 1
PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
endif
else
LD = nlmconv
LDFLAGS = -T
CFLAGS += -fno-builtin -fpack-struct -fpcc-struct-return
CFLAGS += -Wall # -pedantic
ifeq ($(LIBARCH),LIBC)
PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
else
PRELUDE = $(NDK_ROOT)/pre/prelude.o
CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
endif
endif
LDLIBS =
ifeq ($(findstring linux,$(OSTYPE)),linux)
DL = '
include $(NDKBASE)/nlmconv/ncpfs.inc
endif
ifeq ($(MTSAFE),YES)
XDCOPT = -n
endif
ifeq ($(MTSAFE),NO)
XDCOPT = -u
endif
ifdef XDCOPT
XDCDATA = $(TARGET).xdc
endif
ifndef COPYR
COPYR = Copyright (c) 2008 GNU & The Open Source Community.
endif
ifndef DESCR
DESCR = $(TARGET) Command Extension - ($(LIBARCH)) - $(CC) build
endif
NDK_ROOT = $(NDKBASE)/ndk
SDK_CLIB = $(NDK_ROOT)/nwsdk
SDK_LIBC = $(NDK_ROOT)/libc
ifeq ($(LIBARCH),LIBC)
INCLUDES = -I$(SDK_LIBC)/include
# INCLUDES += -I$(SDK_LIBC)/include/nks
else
INCLUDES = -I$(SDK_CLIB)/include/nlm
# INCLUDES += -I$(SDK_CLIB)/include
endif
INCLUDES += -I$(JDK)/include -I$(JDK)/include/netware
INCLUDES += -I$(LIBCURL_PATH)/include
CFLAGS += $(INCLUDES)
OBJS = $(TARGET).o nwlib.o
# vpath %.c . $(LIBCURL_PATH)/lib
#all: $(TARGET).nlm
all: test.class
dist: all
@-$(RM) -r $(LIBARCH)
@mkdir $(LIBARCH)
@mv $(TARGET).nlm $(LIBARCH)/.
-$(RM) *.o $(TARGET).map $(TARGET).ncv $(TARGET).def $(TARGET).xdc
install: all
@[ -d $(INSTDIR) ] || mkdir $(INSTDIR)
@$(CP) $(TARGET).nlm $(INSTDIR)
@$(CP) *.class $(INSTDIR)
@$(CP) *.java $(INSTDIR)
@$(CP) *.ncf $(INSTDIR)
@$(CP) README $(INSTDIR)
clean:
-$(RM) *.o $(TARGET).map $(TARGET).ncv $(TARGET).def $(TARGET).xdc
-$(RM) $(TARGET).imp $(TARGET).nlm
-$(RM) *.class CurlGlue.h
-$(RM) -r $(LIBARCH)
CurlGlue.h: CurlGlue.class CurlGlue.java
javah CurlGlue
touch CurlGlue.h
test.class: $(TARGET).nlm
javac test.java
CurlGlue.class: CurlGlue.java
javac $<
CurlGlue.java: $(LIBCURL_PATH)/include/curl/curl.h $(LIBCURL_PATH)/include/curl/curlver.h
$(PERL) define2java.pl $^ > $@
$(TARGET).nlm: CurlGlue.h $(OBJS) $(TARGET).def $(TARGET).imp $(XDCDATA)
@-$(RM) $@
$(LD) $(LDFLAGS) $(TARGET).def
%.xdc: Makefile.netware
$(MPKXDC) $(XDCOPT) $@
%.def: Makefile.netware
@echo $(DL)# DEF Linker File for use with gcc and nlmconv$(DL) > $@
@echo $(DL)# or with Codewarrior command line compiler.$(DL) >> $@
@echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
@echo $(DL)# All your changes will be lost!!$(DL) >> $@
@echo $(DL)#$(DL) >> $@
@echo $(DL)copyright "$(COPYR)"$(DL) >> $@
@echo $(DL)description "$(DESCR)"$(DL) >> $@
@echo $(DL)version $(VERMAJ),$(VERMIN),$(VERREV)$(DL) >> $@
ifdef NLMTYPE
@echo $(DL)type $(NLMTYPE)$(DL) >> $@
else
@echo $(DL)type 0$(DL) >> $@
endif
ifdef STACK
@echo $(DL)stack $(STACK)$(DL) >> $@
endif
@echo $(DL)threadname "$(TARGET)"$(DL) >> $@
ifdef SCREEN
@echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
else
@echo $(DL)screenname "DEFAULT"$(DL) >> $@
endif
ifeq ($(DB),DEBUG)
@echo $(DL)debug$(DL) >> $@
endif
ifdef XDCOPT
@echo $(DL)xdcdata $(TARGET).xdc$(DL) >> $@
endif
ifeq ($(LIBARCH),CLIB)
@echo $(DL)start _Prelude$(DL) >> $@
@echo $(DL)exit _Stop$(DL) >> $@
@echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/clib.imp$(DL) >> $@
@echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/threads.imp$(DL) >> $@
@echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/nlmlib.imp$(DL) >> $@
@echo $(DL)module clib$(DL) >> $@
else
@echo $(DL)flag_on 64$(DL) >> $@
@echo $(DL)pseudopreemption$(DL) >> $@
@echo $(DL)start _LibCPrelude$(DL) >> $@
@echo $(DL)exit _LibCPostlude$(DL) >> $@
@echo $(DL)check _LibCCheckUnload$(DL) >> $@
@echo $(DL)import @$(NDK_ROOT)/libc/imports/libc.imp$(DL) >> $@
@echo $(DL)import @$(NDK_ROOT)/libc/imports/netware.imp$(DL) >> $@
@echo $(DL)module libc$(DL) >> $@
endif
ifdef MODULES
@echo $(DL)module $(MODULES)$(DL) >> $@
endif
@echo $(DL)import @$(LIBCURL_PATH)/lib/libcurl.imp$(DL) >> $@
@echo $(DL)export @$(TARGET).imp$(DL) >> $@
ifeq ($(LD),nlmconv)
@echo $(DL)input $(OBJS)$(DL) >> $@
@echo $(DL)input $(PRELUDE)$(DL) >> $@
@echo $(DL)output $(TARGET).nlm$(DL) >> $@
endif
%.imp: Makefile.netware
@echo $(DL)# $@ - Exports from $(TARGET)$(DL) > $@
@echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
@echo $(DL)# All your changes will be lost!!$(DL) >> $@
@echo $(DL)#$(DL) >> $@
@echo $(DL) Java_CurlGlue_getinfo,$(DL) >> $@
@echo $(DL) Java_CurlGlue_jni_1cleanup,$(DL) >> $@
@echo $(DL) Java_CurlGlue_jni_1init,$(DL) >> $@
@echo $(DL) Java_CurlGlue_jni_1perform,$(DL) >> $@
@echo $(DL) Java_CurlGlue_jni_1setopt__III,$(DL) >> $@
@echo $(DL) Java_CurlGlue_jni_1setopt__IILCurlWrite_2,$(DL) >> $@
@echo $(DL) Java_CurlGlue_jni_1setopt__IILjava_lang_String_2$(DL) >> $@
%.ncf: Makefile.netware
@echo $(DL)# $@ - startfile for $(TARGET)$(DL) > $@
@echo $(DL)#$(DL) >> $@
@echo $(DL)java -autounload -ns -envCWD=sys:/$(INSTDIR) test$(DL) >> $@
@echo $(DL)#$(DL) >> $@