diff --git a/configure.ac b/configure.ac index d4caa33..efb8cf6 100644 --- a/configure.ac +++ b/configure.ac @@ -351,10 +351,14 @@ else AC_DEFINE(HAVE_REXX) AC_PATH_TOOL([REXXC], [rexxc], [cp], `$REXXCONFIG --prefix`/bin ) PLUGINS="$PLUGINS rx3270" + REXX_CFLAGS="$CFLAGS `$REXXCONFIG --cflags`" + REXX_LIBS="$LIBS `$REXXCONFIG --libs`" fi AC_SUBST(REXXC) AC_SUBST(REXXCONFIG) +AC_SUBST(REXX_CFLAGS) +AC_SUBST(REXX_LIBS) #--[ Pre-reqs ]----------------------------------------------------------------------------------------------------------------------------------------------- AC_SUBST(LIB3270_REQUIRES) diff --git a/pw3270.cbp b/pw3270.cbp index 7ec758c..8414037 100644 --- a/pw3270.cbp +++ b/pw3270.cbp @@ -235,6 +235,7 @@ + diff --git a/src/include/plugin.mak.in b/src/include/plugin.mak.in index f698f95..40a3028 100644 --- a/src/include/plugin.mak.in +++ b/src/include/plugin.mak.in @@ -54,6 +54,8 @@ DLL_FLAGS=@DLL_FLAGS@ DLL_CFLAGS=@DLL_CFLAGS@ DEBUG_CFLAGS=-DDEBUG=1 -g -Wall LIB3270_MODE ?= Default +DLL_NAME=@DLLDIR@/@DLLPREFIX@$(MODULE_NAME)@DLLEXT@.@VERSION@ +PLUGIN_NAME=plugins/$(MODULE_NAME)@DLLEXT@ ifeq ($(LIB3270_MODE),Debug) PW3270_LIBS="-L$(BINDBG)@DLLDIR@ -l3270" diff --git a/src/plugins/rx3270/Makefile.in b/src/plugins/rx3270/Makefile.in index 44d8871..16ffaa2 100644 --- a/src/plugins/rx3270/Makefile.in +++ b/src/plugins/rx3270/Makefile.in @@ -22,41 +22,47 @@ # # perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) -# licinio@bb.com.br (Licínio Luis Branco) -# kraucer@bb.com.br (Kraucer Fernandes Mazuco) # #---[ Sources ]---------------------------------------------------------------- MODULE_NAME=rx3270 -DEPENDS=*.h *.c ../../include/*.h ../../include/lib3270/*.h Makefile +DEPENDS=*.h ../../include/*.h ../../include/lib3270/*.h Makefile PLUGIN_SRC=pluginmain.c EXTAPI_SRC=rxapimain.c +#---[ Tools ]------------------------------------------------------------------ + +REXXCONFIG=@REXXCONFIG@ +LN_S=@LN_S@ + +LIBS=@REXX_LIBS@ +CFLAGS=@REXX_CFLAGS@ + #---[ Include plugin rules ]--------------------------------------------------- include ../../include/plugin.mak #---[ Debug Targets ]---------------------------------------------------------- -$(BINDBG)/plugins/$(MODULE_NAME)@DLLEXT@: $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJDBG)/$(SRC).o) $(BINDBG)/lib$(MODULE_NAME)@DLLEXT@ +$(BINDBG)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJDBG)/$(SRC).o) $(BINDBG)$(DLL_NAME) @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` @$(LD) $(DLL_FLAGS) $(LDSOFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(PW3270_LIBS) $(GTK_LIBS) -$(BINDBG)/lib$(MODULE_NAME)@DLLEXT@: $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJDBG)/$(SRC).o) +$(BINDBG)$(DLL_NAME): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJDBG)/$(SRC)@OBJEXT@) @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` - @$(LD) $(DLL_FLAGS) $(LDSOFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(LIB3270_LIBS) + @$(LD) $(DLL_FLAGS) $(LDFLAGS) @DBGRPATH@ @LDSOFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) #---[ Release Targets ]-------------------------------------------------------- -$(BINRLS)/plugins/$(MODULE_NAME)@DLLEXT@: $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJRLS)/$(SRC).o) $(BINRLS)/lib$(MODULE_NAME)@DLLEXT@ +$(BINRLS)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJRLS)/$(SRC).o) $(BINRLS)$(DLL_NAME) @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` @$(LD) $(DLL_FLAGS) $(LDSOFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(PW3270_LIBS) $(GTK_LIBS) -$(BINRLS)/lib$(MODULE_NAME)@DLLEXT@: $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJRLS)/$(SRC).o) +$(BINRLS)$(DLL_NAME): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJRLS)/$(SRC).o) @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` @$(LD) $(DLL_FLAGS) $(LDSOFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(LIB3270_LIBS) diff --git a/src/plugins/rx3270/pluginmain.c b/src/plugins/rx3270/pluginmain.c index 0f675a3..aca0f70 100644 --- a/src/plugins/rx3270/pluginmain.c +++ b/src/plugins/rx3270/pluginmain.c @@ -29,8 +29,8 @@ #include #include - #include - #include + + #include "rx3270.h" /*--[ Implement ]------------------------------------------------------------------------------------*/ diff --git a/src/plugins/rx3270/rx3270.h b/src/plugins/rx3270/rx3270.h index e69de29..6b3840e 100644 --- a/src/plugins/rx3270/rx3270.h +++ b/src/plugins/rx3270/rx3270.h @@ -0,0 +1,48 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como pluginmain.c e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + +#ifndef RX3270_H_INCLUDED + + #define RX3270_H_INCLUDED 1 + + #include + #include + #include + #include + #include + +/*---[ Exports ]---------------------------------------------------------------------------------------------*/ + + LIB3270_EXPORT RexxRoutineEntry rx3270_functions[]; + LIB3270_EXPORT RexxPackageEntry rx3270_package_entry; + +/*---[ Globals ]---------------------------------------------------------------------------------------------*/ + + +#endif // RX3270_H_INCLUDED diff --git a/src/plugins/rx3270/rxapimain.c b/src/plugins/rx3270/rxapimain.c index 941c189..ae6468e 100644 --- a/src/plugins/rx3270/rxapimain.c +++ b/src/plugins/rx3270/rxapimain.c @@ -26,3 +26,95 @@ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) * */ + + /* + * Reference: + * + * http://www.oorexx.org/docs/rexxpg/x2950.htm + * + */ + + #include + #include + #include + + #include "rx3270.h" + +// create function declarations for the linker +REXX_TYPED_ROUTINE_PROTOTYPE(rx3270LoadFuncs); +REXX_TYPED_ROUTINE_PROTOTYPE(rx3270DropFuncs); +REXX_TYPED_ROUTINE_PROTOTYPE(rx3270Version); + +/*--[ Globals ]--------------------------------------------------------------------------------------*/ + +#if defined WIN32 + BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd); + static int librx3270_loaded(void); + static int librx3270_unloaded(void); +#else + int librx3270_loaded(void) __attribute__((constructor)); + int librx3270_unloaded(void) __attribute__((destructor)); +#endif + +/*--[ Rexx Package description ]---------------------------------------------------------------------*/ + + +// now build the actual entry list +RexxRoutineEntry rx3270_functions[] = +{ + REXX_TYPED_ROUTINE(rx3270Version, rx3270Version), + REXX_LAST_ROUTINE() +}; + +RexxPackageEntry rx3270_package_entry = +{ + STANDARD_PACKAGE_HEADER + REXX_INTERPRETER_4_0_0, /**> anything after 4.0.0 will work */ + "RX3270", /**> name of the package */ + PACKAGE_VERSION, /**> package information */ + NULL, /**> no load/unload functions */ + NULL, /**> no load/unload functions */ + rx3270_functions, /**> the exported functions */ + NULL /**> no methods in rx3270. */ +}; + +// package loading stub. +OOREXX_GET_PACKAGE(rx3270); + +/*--[ Implement ]------------------------------------------------------------------------------------*/ + +#if defined WIN32 +BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd) +{ + switch(dwcallpurpose) + { + case DLL_PROCESS_ATTACH: + librx3270_loaded(); + break; + + case DLL_PROCESS_DETACH: + librx3270_unloaded(); + break; + } + + return TRUE; +} +#endif // WIN32 + +int librx3270_loaded(void) +{ + trace("%s %s %s",__FUNCTION__,__DATE__,__TIME__); + return 0; +} + +int librx3270_unloaded(void) +{ + trace("%s",__FUNCTION__); + return 0; +} + +RexxRoutine0(CSTRING, rx3270Version) +{ + return "teste"; // lib3270_get_version(); +} + -- libgit2 0.21.2