diff --git a/Makefile.in b/Makefile.in
index c1d0414..597b105 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -24,64 +24,66 @@
# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
#
-LIBNAME=lib@LIB3270_NAME@@DLLEXT@
+#---[ Library configuration ]------------------------------------------------------------
-SOURCES = bounds.c ctlr.c util.c toggles.c screen.c selection.c kybd.c telnet.c \
- iocalls.c connect.c \
- host.c sf.c ansi.c resolver.c charset.c \
- version.c session.c state.c html.c trace_ds.c see.c \
- paste.c ssl.c actions.c \
- ft.c ft_cut.c ft_dft.c glue.c resources.c \
- rpq.c macros.c fallbacks.c log.c options.c
+LIBNAME=@LIB3270_NAME@
-#---[ Configuration values ]-------------------------------------------------------------
+SOURCES= \
+ $(wildcard src/lib3270/*.c) \
+ $(wildcard src/lib3270/@OSNAME@/*.c) \
+ $(wildcard src/lib3270/@OSNAME@/*.rc)
-PACKAGE_NAME=@PACKAGE_NAME@
-PACKAGE_VERSION=@PACKAGE_VERSION@
-PACKAGE_TARNAME=@PACKAGE_TARNAME@
+#---[ Tools ]----------------------------------------------------------------------------
+
+CC=@CC@
+LD=@CC@
+LN_S=@LN_S@
+MKDIR=@MKDIR_P@
+
+#---[ Paths ]----------------------------------------------------------------------------
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libdir=@libdir@
+includedir=@includedir@
+datarootdir=@datarootdir@
+localedir=@localedir@
+docdir=@docdir@
+sysconfdir=@sysconfdir@
BASEDIR=@BASEDIR@
-SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/src/lib3270
-POTDIR=$(BASEDIR)/.pot/lib3270
-OBJDIR=$(BASEDIR)/.obj/lib3270
+OBJDIR=$(BASEDIR)/.obj/@DLLPREFIX@$(LIBNAME)
OBJDBG=$(OBJDIR)/Debug
OBJRLS=$(OBJDIR)/Release
-BINDIR=$(BASEDIR)/.bin
+BINDIR=$(BASEDIR)/.bin/@DLLPREFIX@$(LIBNAME)
BINDBG=$(BINDIR)/Debug
BINRLS=$(BINDIR)/Release
-INSTALL=@INSTALL@
-INSTALL_DATA=@INSTALL_DATA@
-INSTALL_PROGRAM=@INSTALL_PROGRAM@
-
-LN_S=@LN_S@
+#---[ Rules ]----------------------------------------------------------------------------
-AMTAR=@AMTAR@
-SHELL=@SHELL@
-MKDIR=@MKDIR_P@
-XGETTEXT=@XGETTEXT@
-MSGCAT=@MSGCAT@
-VALGRIND=@VALGRIND@
+DEPENDS= \
+ Makefile \
+ src/include/*.h \
+ src/include/lib3270/*.h \
+ src/lib3270/*.h
-CC=@CC@
-HOST_CC=@HOST_CC@
-LD=@CC@
-CFLAGS=@CFLAGS@ @LIB3270_CFLAGS@ @LIBSSL_CFLAGS@
-LIBS=@LIBS@ @LIBSSL_LIBS@ @LIBICONV@ @INTL_LIBS@
-LDFLAGS=@LDFLAGS@
+CFLAGS= \
+ @CFLAGS@ \
+ -g \
+ -Isrc/include
+ -DBUILD_DATE=`date +%Y%m%d` \
+ @LIBSSL_CFLAGS@
-#---[ Rules ]----------------------------------------------------------------------------
+LIBS= \
+ @LIBS@ \
+ @LIBSSL_LIBS@
-DEPENDS=$(BASEDIR)/src/include/*.h $(BASEDIR)/src/include/lib3270/*.h *.h Makefile
+#---[ Debug Rules ]----------------------------------------------------------------------
$(OBJDBG)/%.o: \
%.c \
@@ -89,10 +91,12 @@ $(OBJDBG)/%.o: \
@echo $< ...
@$(MKDIR) `dirname $@`
- @$(CC) $(CFLAGS) \
- @DBG_CFLAGS@ \
- -DBUILD_DATE=`date +"0x%Y%m%d"`\
- -o $@ -c $<
+ @$(CC) \
+ $(CFLAGS) \
+ -Wall -Wextra -fstack-check -DDEBUG=1 \
+ -o $@ -c $<
+
+#---[ Release Rules ]--------------------------------------------------------------------
$(OBJRLS)/%.o: \
%.c \
@@ -100,177 +104,101 @@ $(OBJRLS)/%.o: \
@echo $< ...
@$(MKDIR) `dirname $@`
- @$(CC) $(CFLAGS) \
- @RLS_CFLAGS@ \
- -DBUILD_DATE=`date +"0x%Y%m%d"` \
- -o $@ -c $<
-
-
-$(POTDIR)/%.pot: %.c
-
- @echo $(notdir $@) ...
- @$(MKDIR) `dirname $@`
- @$(XGETTEXT) \
- --default-domain=$(PACKAGE) \
- --language=C \
- --keyword=_ \
- --keyword=N_ \
- --keyword=MSG_:2 \
- --output=$@ \
- $<
-
- @touch $@
+ @$(CC) \
+ $(CFLAGS) \
+ -DNDEBUG=1 \
+ -o $@ -c $<
#---[ Release Targets ]------------------------------------------------------------------
all: \
- $(BINRLS)/$(LIBNAME)
+ $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
Release: \
- $(BINRLS)/$(LIBNAME)
+ $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
-$(BASEDIR)/.pot/lib@LIB3270_NAME@.pot: \
- $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(SRC).pot)
+$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@: \
+ $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
+ @echo $< ...
@rm -f $@
- @mkdir -p `dirname $@`
- @$(MSGCAT) --sort-output $^ > $@
-
-$(BINRLS)/$(LIBNAME): \
- $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@
+ @$(LN_S) \
+ @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
+ $@
- @echo $(basename $@) ...
- @$(MKDIR) `dirname $@`
- @$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@ $@
-
-$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@: \
- $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
+$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
+ $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
- @echo $(basename $@) ...
- @$(MKDIR) `dirname $@`
- @$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $@
+ @rm -f $@
+ @$(LN_S) \
+ @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
+ $@
-$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
+$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
$(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
- @echo $(basename $@) ...
@$(MKDIR) `dirname $@`
- @$(LD) -shared -Wl,-soname,$(@F) $(LDFLAGS) -o $@ $^ $(LIBS)
-
-install: \
- $(BINRLS)/$(LIBNAME)
-
- @$(MKDIR) $(DESTDIR)$(libdir)
-
- @$(INSTALL_PROGRAM) \
- $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
- $(DESTDIR)$(libdir)
+ @echo $< ...
+ @$(LD) \
+ -shared -Wl,-soname,$(@F) \
+ -o $@ \
+ $(LDFLAGS) \
+ $(LIBS)
- @$(LN_S) -f \
- $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
- $(DESTDIR)$(libdir)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@
+#---[ Install Targets ]------------------------------------------------------------------
- @$(LN_S) -f \
- $(LIBNAME).@PACKAGE_MAJOR_VERSION@ \
- $(DESTDIR)$(libdir)/$(LIBNAME)
#---[ Debug Targets ]--------------------------------------------------------------------
Debug: \
- $(BINDBG)/$(LIBNAME)
-
-$(BINDBG)/$(LIBNAME): \
- $(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@
-
- @echo $(basename $@) ...
- @$(MKDIR) `dirname $@`
- @$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@ $@
-
-$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@: \
- $(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
-
- @echo $(basename $@) ...
- @$(MKDIR) `dirname $@`
- @$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $@
+ $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
-$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
- $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
-
- @echo $(basename $@) ...
- @$(MKDIR) `dirname $@`
- @$(LD) -shared -Wl,-soname,$(@F) $(LDFLAGS) -o $@ $^ $(LIBS)
-
-#---[ Misc Targets ]---------------------------------------------------------------------
+$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@: \
+ $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
-fallbacks.c: \
- X3270.xad \
- mkfb.c
-
- @echo $(basename $@) ...
- @$(MKDIR) $(BINDIR)
- @$(HOST_CC) -g -o $(BINDIR)/mkfb@EXEEXT@ mkfb.c
- @$(BINDIR)/mkfb@EXEEXT@ -c X3270.xad $@
+ @echo $< ...
+ @rm -f $@
+ @$(LN_S) \
+ @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
+ $@
-version.c: \
- ./mkversion.sh
+$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
+ $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
- @echo $(basename $@) ...
- @chmod +x ./mkversion.sh
- @./mkversion.sh
+ @rm -f $@
+ @$(LN_S) \
+ @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
+ $@
-$(BINDBG)/testprogram$(EXEEXT): \
- $(OBJDBG)/testprogram.o \
+$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
$(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
- @echo $(basename $@) ...
@$(MKDIR) `dirname $@`
- @$(LD) -o $@ $^ $(LIBS)
-
-run: \
- $(BINDBG)/testprogram$(EXEEXT)
-
-ifeq ($(VALGRIND),no)
- @cd "$(ROOTDIR)" ; .bin/Debug/testprogram$(EXEEXT)
-else
- @cd "$(ROOTDIR)" ; \$(VALGRIND) --leak-check=full --gen-suppressions=all $(BINDBG)/testprogram$(EXEEXT)
-endif
-
-$(SRCDIR): \
- clean
-
- @$(MKDIR) $@
- @$(INSTALL_DATA) *.c *.h *.in *.cbp *.xad $@
+ @echo $< ...
+ @$(LD) \
+ -shared -Wl,-soname,$(@F) \
+ -o $@ \
+ $(LDFLAGS) \
+ $(LIBS)
+#---[ Clean Targets ]--------------------------------------------------------------------
-#---[ Clean Targets]---------------------------------------------------------------------
+clean: \
+ cleanDebug \
+ cleanRelease
cleanDebug:
- @rm -fr $(OBJDBG) \
- $(BINDBG)/$(LIBNAME) \
- $(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@ \
- $(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
-
- @rm -f \
- fallbacks.c \
- version.c
+ @rm -fr $(OBJDBG)
+ @rm -fr $(BINDBG)
cleanRelease:
- @rm -fr $(OBJRLS) \
- $(BINRLS)/$(LIBNAME) \
- $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@ \
- $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
- $(POTDIR)
+ @rm -fr $(OBJRLS)
+ @rm -fr $(BINRLS)
- @rm -f \
- fallbacks.c \
- version.c
clean: \
cleanDebug \
cleanRelease
-
-
-
diff --git a/configure.ac b/configure.ac
index e25cf2d..b7a0a94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -74,6 +74,7 @@ dnl ---------------------------------------------------------------------------
case "$host" in
*-mingw32)
+ app_cv_osname="windows"
CFLAGS="$CFLAGS -pthread -D_WIN32_WINNT=0x0600"
LDFLAGS="$LDFLAGS -pthread -static-libgcc -static-libstdc++"
DLLEXT=".dll"
@@ -84,6 +85,7 @@ case "$host" in
LDFLAGS="$LDFLAGS -pthread"
app_cv_datadir="/usr/share"
app_cv_confdir="/etc"
+ app_cv_osname="linux"
LOGDIR="/var/log"
;;
@@ -92,6 +94,7 @@ case "$host" in
LDFLAGS="$LDFLAGS -pthread"
app_cv_datadir="/usr/share"
app_cv_confdir="/etc"
+ app_cv_osname="linux"
LOGDIR="/var/log"
DLLEXT=".so"
DLLPREFIX="lib"
@@ -100,6 +103,7 @@ esac
AC_SUBST(DATADIR,$app_cv_datadir)
AC_SUBST(CONFDIR,$app_cv_confdir)
+AC_SUBST(OSNAME,$app_cv_confdir)
AC_SUBST(LIBS)
AC_SUBST(LOGDIR)
AC_SUBST(DLLEXT)
@@ -364,7 +368,7 @@ dnl Configure which files to generate.
dnl ---------------------------------------------------------------------------
AC_CONFIG_FILES(sdk/lib3270.pc)
-dnl AC_CONFIG_FILES(Makefile)
+AC_CONFIG_FILES(Makefile)
dnl ---------------------------------------------------------------------------
dnl Output the generated config.status script.
diff --git a/lib3270.cbp b/lib3270.cbp
index b355e15..4ecfb3e 100644
--- a/lib3270.cbp
+++ b/lib3270.cbp
@@ -3,20 +3,21 @@
+
-
+
-
+
-
+
--
libgit2 0.21.2