Skip to content

Commit

Permalink
Preserve current state of MinGW port
Browse files Browse the repository at this point in the history
git-svn-id: https://code.crt.realtors.org/svn/librets/librets/trunk@1494 fe7ac059-47f5-0310-8599-d0339b4e125c
  • Loading branch information
jazzklein committed Dec 25, 2010
1 parent 45384ac commit c0245a4
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 17 deletions.
10 changes: 6 additions & 4 deletions Makefile.in
@@ -1,4 +1,5 @@
top_srcdir=@top_srcdir@
abs_top_srcdir=@abs_top_srcdir@

SHELL = /bin/sh

Expand All @@ -16,14 +17,15 @@ includedir=@includedir@
INSTALL=@INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_DATA=@INSTALL_DATA@
MKINSTALLDIRS=$(top_srcdir)/project/build/mkinstalldirs
MKINSTALLDIRS=$(abs_top_srcdir)/project/build/mkinstalldirs

CC=@CC@
CXX=@CXX@
CFLAGS=@CFLAGS@ @DEFS@
CPPFLAGS=@CPPFLAGS@
LIBS=@LIBS@
LDFLAGS=@LDFLAGS@
ARCH=@ARCH@
ARCH_FLAGS=@ARCH_FLAGS@

USE_DEPENDS_IN=@USE_DEPENDS@
Expand Down Expand Up @@ -127,6 +129,6 @@ clean: _clean
distclean: _distclean
maintainer-clean: _maintainer-clean

include $(top_srcdir)/project/build/version.mk
include $(top_srcdir)/project/build/sources.mk
include $(top_srcdir)/project/build/rules.mk
include $(abs_top_srcdir)/project/build/version.mk
include $(abs_top_srcdir)/project/build/sources.mk
include $(abs_top_srcdir)/project/build/rules.mk
1 change: 1 addition & 0 deletions aclocal.m4
Expand Up @@ -9,3 +9,4 @@ sinclude(project/build/ac-macros/cppunit.m4)
sinclude(project/build/ac-macros/curl.m4)
sinclude(project/build/ac-macros/sql-compiler.m4)
sinclude(project/build/ac-macros/swig.m4)
sinclude(project/build/ac-macros/mingw.m4)
7 changes: 7 additions & 0 deletions configure.ac
Expand Up @@ -153,13 +153,20 @@ if test "$my_use_pic" = "yes"; then
fi

OSNAME=`perl -e 'use Config; print $Config{osname};'`
ARCH=
ARCH_FLAGS=

if test "$OSNAME" = "darwin"; then
MY_TEST_DARWIN
fi

if test "$OSNAME" = "MSWin32"; then
MY_TEST_MINGW
fi

AC_SUBST(LIBRETS_CFLAGS)
AC_SUBST(LIBRETS_LDFLAGS)
AC_SUBST(ARCH)
AC_SUBST(ARCH_FLAGS)

AC_CONFIG_FILES([Makefile project/build/Doxyfile])
Expand Down
3 changes: 2 additions & 1 deletion librets-config-inplace.in
Expand Up @@ -3,8 +3,9 @@
# The idea to this kind of setup info script was stolen from numerous
# other packages, such as neon, libxml and gnome.
#
ARCH=@ARCH@
basedir=@abs_top_builddir@
builddir=@abs_top_builddir@/build
builddir=@abs_top_builddir@/build${ARCH}
includedir=@abs_top_srcdir@/project/librets/include
librets_cflags="@LIBRETS_CFLAGS@"
librets_ldflags="@LIBRETS_LDFLAGS@"
Expand Down
27 changes: 27 additions & 0 deletions project/build/ac-macros/mingw.m4
@@ -0,0 +1,27 @@
dnl
dnl Configure MinGW builds on Windows
dnl
AC_DEFUN([MY_TEST_MINGW], [
AC_ARG_WITH(platform,
AC_HELP_STRING([--with-platform=PLATFORM],
[Set platform (x86 or x64 - primarily for MinGW on Windows)]),
my_platform="$withval",
my_platform="")
echo \*\*\*\*\*\*\* my_platform: $my_platform
if test "$my_platform" != "x86"; then
if test "$my_platform" != "x64"; then
my_platform=""
fi
fi
if test "X$my_platform" != "X"; then
ARCH="-$my_platform"
fi
if test "X$MSYSTEM" != "X"; then
LDFLAGS="$LDFLAGS -static-libgcc -Wl,-Bstatic"
fi
])
43 changes: 36 additions & 7 deletions project/build/perl.mk
Expand Up @@ -4,12 +4,22 @@

PERL_BUILD = ${PERL_DLL}

PERL_DLL = ${PERL_OBJ_DIR}/blib/arch/auto/librets/librets.${DLL}
PERL_CFLAGS = `${abs_top_srcdir}/librets-config-inplace --cflags`
PERL_DLL_DIR = ${PERL_OBJ_DIR}/blib/arch/auto/librets/
PERL_DLL = ${PERL_DLL_DIR}/librets.${DLL}
# PERL_INCLUDES =`fgrep PERL_INC ${PERL_MAKEFILE} | head -1 | cut -f 2 -d =`
PERL_LIB = ${shell perl -e 'use Config; print $$Config{libperl};'}
PERL_LIB_DIR = ${shell perl -e 'use Config; $$libdir = $$Config{archlibexp}; \
$$libdir=~s/(^[a-zA-Z]):/\/$$1/;$$libdir=~s/\\/\//g;print $$libdir;'}/CORE
PERL_INCLUDES = ${PERL_LIB_DIR}
PERL_INSTALL = perl_install
PERL_LDFLAGS = `${abs_top_srcdir}/librets-config-inplace --libs`
PERL_MAKEFILE = ${PERL_OBJ_DIR}/Makefile
PERL_MAKEFILE_PL = Makefile.PL
PERL_MAKEFILE_PL_MINGW = Makefile.mingw.PL
PERL_MANIFEST = MANIFEST
PERL_OBJ_DIR = ${SWIG_OBJ_DIR}/perl
PERL_SEARCH_EXAMPLE = search.pl
PERL_SRC_DIR = ${SWIG_DIR}/perl
PERL_WRAP = ${PERL_OBJ_DIR}/librets_wrap.cpp

Expand All @@ -19,20 +29,39 @@ ${PERL_WRAP}: ${SWIG_FILES}

ifeq (${SWIG_OSNAME}, MSWin32)

${PERL_MAKEFILE}: ${PERL_WRAP} ${PERL_SRC_DIR}/${PERL_MAKEFILE_PL_MINGW}
${PERL_OBJ_DIR}/${PERL_MAKEFILE_PL}: ${PERL_SRC_DIR}/${PERL_MAKEFILE_PL_MINGW}
cp ${PERL_SRC_DIR}/${PERL_MAKEFILE_PL_MINGW} ${PERL_OBJ_DIR}/${PERL_MAKEFILE_PL}
cd ${PERL_OBJ_DIR}; perl ${PERL_MAKEFILE_PL}
cp ${PERL_SRC_DIR}/${PERL_MANIFEST} ${PERL_OBJ_DIR}
cp ${PERL_SRC_DIR}/${PERL_SEARCH_EXAMPLE} ${PERL_OBJ_DIR}

${PERL_MAKEFILE}: ${PERL_WRAP} ${PERL_OBJ_DIR}/${PERL_MAKEFILE_PL}
cd ${PERL_OBJ_DIR}; mkdir -p ${PERL_DLL_DIR}; perl ${PERL_MAKEFILE_PL} \
CC="${CXX}" \
CCFLAGS="${PERL_CFLAGS}" \
LD="${SWIG_LINK}" \
LDFLAGS="${PERL_LDFLAGS}" \
LDDLFLAGS="-DFOO" \
OPTIMIZE="-DFOOBAR" \
LIBS="${PERL_LDFLAdGS}"

${PERL_DLL}: ${PERL_MAKEFILE} ${LIBRETS_LIB}
cd ${PERL_OBJ_DIR}; (unset MAKEFLAGS; nmake || nmake)
${PERL_OBJ_DIR}/librets_wrap.obj: ${PERL_OBJ_DIR}/librets_wrap.cpp ${PERL_MAKEFILE}
${CXX} ${PERL_CXX_FLAGS} -I${LIBRETS_INC_DIR} -I${SWIG_DIR} ${BOOST_CFLAGS} -I${PERL_INCLUDES} -c $< -o $@


${PERL_DLL}: ${PERL_MAKEFILE} ${LIBRETS_LIB} ${PERL_OBJ_DIR}/librets_wrap.obj
${SWIG_LINK} -o ${PERL_DLL} ${PERL_OBJ_DIR}/librets_wrap.obj ${SWIG_LIBRETS_LIBS} ${PERL_LIB_DIR}/${PERL_LIB}
# cd ${PERL_OBJ_DIR}; (unset MAKEFLAGS; nmake || nmake)

${PERL_INSTALL}: ${PERL_DLL} ${PERL_MAKEFILE}
cd ${PERL_OBJ_DIR}; (unset MAKEFLAGS; nmake install)
else

${PERL_MAKEFILE}: ${PERL_WRAP} ${PERL_SRC_DIR}/${PERL_MAKEFILE_PL}
cp ${PERL_SRC_DIR}/${PERL_MAKEFILE_PL} ${PERL_OBJ_DIR}
${PERL_OBJ_DIR}/${PERL_MAKEFILE_PL}: ${PERL_SRC_DIR}/${PERL_MAKEFILE_PL}
cp ${PERL_SRC_DIR}/${PERL_MAKEFILE_PL} ${PERL_OBJ_DIR}/${PERL_MAKEFILE_PL}
cp ${PERL_SRC_DIR}/${PERL_MANIFEST} ${PERL_OBJ_DIR}
cp ${PERL_SRC_DIR}/${PERL_SEARCH_EXAMPLE} ${PERL_OBJ_DIR}

${PERL_MAKEFILE}: ${PERL_WRAP} ${PERL_OBJ_DIR}/${PERL_MAKEFILE_PL}
cd ${PERL_OBJ_DIR}; perl ${PERL_MAKEFILE_PL}

${PERL_DLL}: ${PERL_MAKEFILE} ${LIBRETS_LIB}
Expand Down
29 changes: 24 additions & 5 deletions project/swig/ruby/extconf.rb
Expand Up @@ -9,10 +9,12 @@
CONFIG['LDSHARED'].sub!(/^cc/, "c++")
elsif RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /freebsd/
CONFIG['LDSHARED'].sub!(/\$\(CC\)/, "$(CXX)")
elsif RUBY_PLATFORM =~ /i386-mingw32/
CONFIG['LDSHARED'].sub!(/\$\(CC\)/, "$(CXX)")
end

makefile_prefix = ""
if RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /freebsd/
if RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /freebsd/
librets_config = with_config("librets-config",
"../../../librets-config-inplace")
$libs += ' ' + `#{librets_config} --libs`.chomp
Expand All @@ -22,10 +24,6 @@
$CFLAGS += ' ' + ENV['CFLAGS'] + ' ' + `#{librets_config} --cflags`.chomp
end
swig_dir=with_config("swig-dir", "../../../swig")
elsif RUBY_PLATFORM =~ /i386-mingw32/
$CFLAGS += ' -I/c/librets/mingw-x64/include -I/c/librets/mingw-x64/include/boost-1_41 -I.. -I../../librets/include -I/c/librets/vs2008-x64/include -I/c/librets/vs2008-x64 '
$libs += ' ../../librets/src/build-x64/liblibrets-vs2008-1.4.1trunk.lib '
swig_dir=with_config("swig-dir", "..")
elsif RUBY_PLATFORM =~ /win32/
$CFLAGS += ' $(CFLAGS_STD) $(BOOST_CFLAGS) -I.. -I../../librets/include'
$libs += ' $(LIBRETS_LIB) winmm.lib wldap32.lib gdi32.lib'
Expand All @@ -34,6 +32,27 @@
LIBRETS_LIB = ../../librets/src/$(BUILD_DIR)/$(LIBRETS_LIB_NAME)
}
swig_dir=with_config("swig-dir", "..")
elsif RUBY_PLATFORM =~ /i386-mingw32/
librets_cflags = with_config("librets-cflags")
if librets_cflags.nil?
abort("--with-librets-cflags is required")
end

librets_libs = with_config("librets-libs")
if librets_libs.nil?
abort("--with-librets-libs is required")
end

$libs += ' ' + librets_libs.chomp
if ENV['CFLAGS'].nil?
$CFLAGS += ' ' + librets_cflags.chomp
else
$CFLAGS += ' ' + ENV['CFLAGS'] + ' ' + librets_cflags.chomp
end
swig_dir=with_config("swig-dir", "../../../project/swig")
puts "lib " + $libs
puts "cflags '" + $CFLAGS + "'"
puts "librets_libs: " + librets_libs
end

$INSTALLFILES = [['librets.rb', "$(RUBYLIBDIR)", "lib"]]
Expand Down

0 comments on commit c0245a4

Please sign in to comment.