2007-10-23 20:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
+ harbour/doc/howtobld.txt
+ added hb* scripts description
* harbour/Makefile
* harbour/source/Makefile
+ harbour/harbour-ce-spec
* harbour/bin/pack_src.sh
+ harbour/make_rpmce.sh
+ added script to build RPMs with cross build of Harbour for PocketPC
make_rpmce.sh should create harbour-ce-1.1.1-0.i386.rpm which
can be installed with other harbour RPMs
It contains Harbour libraries compiled for WinCE/PocketPC and
set of hbce* scripts which should be used instead of standard hb*
ones to create PocketPC binaries. It means that you can create
standard Linux binaries and PocketPC binaries in the same session
without setting/changing any additional environment varibales, f.e:
hbmk -n -w -es2 test.prg
will create linux binaries and:
hbcemk -n -w -es2 test.prg
will create binaries for WinCE/PocketPC
This commit is contained in:
@@ -8,6 +8,28 @@
|
||||
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2007-10-23 20:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
+ harbour/doc/howtobld.txt
|
||||
+ added hb* scripts description
|
||||
|
||||
* harbour/Makefile
|
||||
* harbour/source/Makefile
|
||||
+ harbour/harbour-ce-spec
|
||||
* harbour/bin/pack_src.sh
|
||||
+ harbour/make_rpmce.sh
|
||||
+ added script to build RPMs with cross build of Harbour for PocketPC
|
||||
make_rpmce.sh should create harbour-ce-1.1.1-0.i386.rpm which
|
||||
can be installed with other harbour RPMs
|
||||
It contains Harbour libraries compiled for WinCE/PocketPC and
|
||||
set of hbce* scripts which should be used instead of standard hb*
|
||||
ones to create PocketPC binaries. It means that you can create
|
||||
standard Linux binaries and PocketPC binaries in the same session
|
||||
without setting/changing any additional environment varibales, f.e:
|
||||
hbmk -n -w -es2 test.prg
|
||||
will create linux binaries and:
|
||||
hbcemk -n -w -es2 test.prg
|
||||
will create binaries for WinCE/PocketPC
|
||||
|
||||
2007-10-23 16:39 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* contrib/libnf/fttext.c
|
||||
! Fixed opening mode in FT_FUSE().
|
||||
|
||||
@@ -4,14 +4,28 @@
|
||||
|
||||
ROOT = ./
|
||||
|
||||
ifeq ($(HB_HOST_BUILD),yes)
|
||||
|
||||
DIRS=\
|
||||
source \
|
||||
|
||||
else
|
||||
|
||||
ifeq ($(HB_HOST_BUILD),lib)
|
||||
HB_UTIL_DIR=
|
||||
else
|
||||
HB_UTIL_DIR=utils
|
||||
endif
|
||||
|
||||
DIRS=\
|
||||
doc \
|
||||
include \
|
||||
source \
|
||||
utils \
|
||||
$(HB_UTIL_DIR) \
|
||||
contrib \
|
||||
# samples \
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(HB_POSTINST),)
|
||||
|
||||
|
||||
@@ -246,6 +246,9 @@ $hb_collect source/vm/*.prg
|
||||
# SOURCE\VM\MAINSTD
|
||||
$hb_collect source/vm/mainstd/Makefile
|
||||
|
||||
# SOURCE\VM\MAINWIN
|
||||
$hb_collect source/vm/mainwin/Makefile
|
||||
|
||||
# TESTS
|
||||
$hb_collect tests/Makefile
|
||||
$hb_collect tests/*.bat
|
||||
|
||||
118
harbour/doc/howtobld.txt
Normal file
118
harbour/doc/howtobld.txt
Normal file
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
In the last phase of install process if bash shell is available in the
|
||||
system then few bash scripts are created to make compiling and linking
|
||||
with Harbour a little easier. There are compiler and linker wrappers
|
||||
called "hbcc", "hbcmp", "hblnk" and "hbmk".
|
||||
|
||||
"hbcc" is a wrapper to the C compiler only. It sets all flags
|
||||
and paths necessary to compile .c files which include Harbour header
|
||||
files. The result of its work is an object file.
|
||||
|
||||
Use "hbcmp" exactly as you would use the harbour compiler itself.
|
||||
The main difference with hbcmp is that it results in an object file,
|
||||
not a C file that needs compiling down to an object. hbcmp also
|
||||
ensures that the harbour include directory is seen by the harbour compiler.
|
||||
|
||||
"hblnk" simply takes a list of object files and links them together
|
||||
with the harbour virtual machine and run-time library to produce an
|
||||
executable. The executable will be given the basename of the first object
|
||||
file if not directly set by the "-o" command line switch.
|
||||
|
||||
"hbmk" tries to produce an executable from your .prg file. It's a simple
|
||||
equivalent of cl.bat from the CA-Clipper distribution.
|
||||
|
||||
All these scripts accept command line switches:
|
||||
-o<outputfilename> # output file name
|
||||
-static # link with static Harbour libs
|
||||
-fullstatic # link with all static libs
|
||||
-shared # link with shared libs (default)
|
||||
-mt # link with multi-thread libs
|
||||
-gt<hbgt> # link with <hbgt> GT driver, can be repeated to
|
||||
# link with more GTs. The first one will be
|
||||
# the default at runtime
|
||||
-xbgtk # link with xbgtk library (xBase GTK+ interface)
|
||||
-hwgui # link with HWGUI library (GTK+ interface)
|
||||
-l<libname> # link with <libname> library
|
||||
-L<libpath> # additional path to search for libraries
|
||||
-fmstat # link with the memory statistics lib
|
||||
-nofmstat # do not link with the memory statistics lib (default)
|
||||
-[no]strip # strip (no strip) binaries
|
||||
-main=<main_func> # set the name of main program function/procedure.
|
||||
# if not set then 'MAIN' is used or if it doesn't
|
||||
# exist the name of first public function/procedure
|
||||
# in first linked object module (link)
|
||||
|
||||
Link options work only with "hblnk" and "hbmk" and have no effect
|
||||
in "hbcc" and "hbcmp".
|
||||
Other options are passed to Harbour/C compiler/linker.
|
||||
To save compatibility with older harbour distributions, "gharbour" can
|
||||
be used as a synonym of "hbcmp", and "harbour-link" as synonym of "hblnk"
|
||||
|
||||
An example compile/link session looks like:
|
||||
----------------------------------------------------------------------
|
||||
druzus@uran:~/tmp$ cat foo.prg
|
||||
function main()
|
||||
? "Hello, World!"
|
||||
return nil
|
||||
|
||||
druzus@uran:~/tmp$ hbcmp foo
|
||||
Harbour Compiler Alpha build 46.2 (Flex)
|
||||
Copyright 1999-2006, http://www.harbour-project.org/
|
||||
Compiling 'foo.prg'...
|
||||
Lines 5, Functions/Procedures 2
|
||||
Generating C source output to 'foo.c'... Done.
|
||||
|
||||
druzus@uran:~/tmp$ hblnk foo.o
|
||||
|
||||
druzus@uran:~/tmp$ strip foo
|
||||
|
||||
druzus@uran:~/tmp$ ls -l foo
|
||||
-rwxrwxr-x 1 druzus druzus 3824 maj 17 02:46 foo
|
||||
----------------------------------------------------------------------
|
||||
|
||||
or using hbmk only:
|
||||
----------------------------------------------------------------------
|
||||
druzus@uran:~/tmp$ cat foo.prg
|
||||
function main()
|
||||
? "Hello, World!"
|
||||
return nil
|
||||
|
||||
druzus@uran:~/tmp$ hbmk foo
|
||||
Harbour Compiler Alpha build 46.2 (Flex)
|
||||
Copyright 1999-2006, http://www.harbour-project.org/
|
||||
Compiling 'foo.prg'...
|
||||
Lines 5, Functions/Procedures 2
|
||||
Generating C source output to 'foo.c'... Done.
|
||||
|
||||
druzus@uran:~/tmp$ ls -l foo
|
||||
-rwxrwxr-x 1 druzus druzus 3824 maj 17 02:46 foo
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
You will find additional wonderful tools: /usr/bin/hbrun
|
||||
You can run clipper/xbase compatible source files with it
|
||||
if you only put in their first line:
|
||||
#!/usr/bin/hbrun
|
||||
|
||||
For example:
|
||||
----------------------------------------------------------------------
|
||||
druzus@uran:~/tmp$ cat foo.prg
|
||||
#!/usr/bin/hbrun
|
||||
function main()
|
||||
? "Hello, World!, This is a script !!! :-)"
|
||||
?
|
||||
return nil
|
||||
|
||||
druzus@uran:~/tmp$ chmod +x foo.prg
|
||||
|
||||
druzus@uran:~/tmp$ ./foo.prg
|
||||
|
||||
Hello, World!, This is a script !!! :-)
|
||||
|
||||
druzus@uran:~/tmp$
|
||||
|
||||
I hope you will find this information useful,
|
||||
Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
352
harbour/harbour-ce-spec
Normal file
352
harbour/harbour-ce-spec
Normal file
@@ -0,0 +1,352 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# Copyright 2007 Przemyslaw Czerpak (druzus/at/priv.onet.pl),
|
||||
# Harbour-WinCE cross build RPM spec file
|
||||
#
|
||||
# See doc/license.txt for licensing terms.
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
######################################################################
|
||||
# Conditional build:
|
||||
# --with mysql - build mysql lib
|
||||
# --with pgsql - build pgsql lib
|
||||
# --with gd - build gd lib
|
||||
# --with allegro - build GTALLEG - Allegro based GT driver
|
||||
# --without odbc - do not build odbc lib
|
||||
# --without adsrdd - do not build ADS RDD
|
||||
# --without nf - do not build nanforum lib
|
||||
######################################################################
|
||||
|
||||
######################################################################
|
||||
## Definitions.
|
||||
######################################################################
|
||||
|
||||
%define name harbour-ce
|
||||
%define version 1.1.1
|
||||
%define releasen 0
|
||||
%define hb_pref hbce
|
||||
%define hb_ccpath /opt/mingw32ce/bin
|
||||
%define hb_ccpref arm-wince-mingw32ce-
|
||||
%define hb_host www.harbour-project.org
|
||||
%define readme README.RPM
|
||||
|
||||
# Workaround for the problem of /usr/bin/strip not handling PE binaries.
|
||||
%define __strip %{hb_ccpath}/%{hb_ccpref}strip
|
||||
%define __objdump %{hb_ccpath}/%{hb_ccpref}objdump
|
||||
|
||||
######################################################################
|
||||
## Preamble.
|
||||
######################################################################
|
||||
|
||||
Summary: Free software Clipper compatible compiler
|
||||
Summary(pl): Darmowy kompilator kompatybilny z jêzykiem Clipper.
|
||||
Name: %{name}
|
||||
Version: %{version}
|
||||
Release: %{releasen}
|
||||
License: GPL (plus exception)
|
||||
Group: Development/Languages
|
||||
Vendor: %{hb_host}
|
||||
URL: http://%{hb_host}/
|
||||
Source: harbour-%{version}.src.tar.gz
|
||||
Packager: Przemys³aw Czerpak (druzus/at/priv.onet.pl)
|
||||
BuildPrereq: gcc binutils bash
|
||||
Requires: gcc binutils bash sh-utils cegcc-mingw32ce harbour = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Provides: %{name}
|
||||
BuildRoot: /tmp/%{name}-%{version}-root
|
||||
|
||||
%define _noautoreq 'libharbour.*'
|
||||
|
||||
%description
|
||||
Harbour is a CA-Clipper compatible compiler for multiple platforms. This
|
||||
package includes a compiler, pre-processor, header files, virtual machine
|
||||
and libraries for creating WinCE application in Linux box using MinGW-CE
|
||||
GCC port.
|
||||
|
||||
%description -l pl
|
||||
Harbour to kompatybilny z jêzykiem CA-Clipper kompilator rozwijany na
|
||||
wielu ró¿nych platformach. Ten pakiet zawiera kompilator, preprocesor,
|
||||
zbiory nag³ówkowe, wirtualn± maszynê oraz biblioteki pozwalaj±ce na
|
||||
tworzenie aplikacji dla WinCE-PocketPC przy u¿yciu MinGW-CE GCC.
|
||||
|
||||
|
||||
######################################################################
|
||||
## Preperation.
|
||||
######################################################################
|
||||
|
||||
%prep
|
||||
%setup -c harbour
|
||||
rm -fR $RPM_BUILD_ROOT
|
||||
|
||||
######################################################################
|
||||
## Build.
|
||||
######################################################################
|
||||
|
||||
%build
|
||||
|
||||
export HB_HOST_BUILD=yes
|
||||
export HB_ARCHITECTURE=linux
|
||||
export HB_COMPILER=gcc
|
||||
export C_USR="-O2 -DHB_FM_STATISTICS_OFF"
|
||||
make -r
|
||||
|
||||
export HB_HOST_BUILD=lib
|
||||
export HB_ARCHITECTURE=w32
|
||||
export HB_COMPILER=cemgw
|
||||
|
||||
mkdir -p source/pp/${HB_ARCHITECTURE}/${HB_COMPILER}
|
||||
ln -s ../../linux/gcc/ppgen source/pp/${HB_ARCHITECTURE}/${HB_COMPILER}/ppgen.exe
|
||||
mkdir -p source/main/${HB_ARCHITECTURE}/${HB_COMPILER}
|
||||
ln -s ../../linux/gcc/harbour source/main/${HB_ARCHITECTURE}/${HB_COMPILER}/harbour.exe
|
||||
|
||||
export CC_C_USR="-DHOST_OS_UNIX_COMPATIBLE"
|
||||
export C_USR="$CC_C_USR -O2 -DHB_FM_STATISTICS_OFF"
|
||||
export CC_PRG_USR="-D__PLATFORM__Windows -D__PLATFORM__WINCE -undef:__PLATFORM__UNIX -undef:__PLATFORM__Linux"
|
||||
export PRG_USR="$CC_PRG_USR"
|
||||
export L_USR="${CC_L_USR}"
|
||||
|
||||
export CCPATH="%{hb_ccpath}:"
|
||||
export CCPREFIX="%{hb_ccpref}"
|
||||
export PATH="$CCPATH$PATH"
|
||||
|
||||
export HB_MT=no
|
||||
export HB_GT_LIB=gtwvt
|
||||
export HB_BIN_INSTALL=%{_bindir}
|
||||
export HB_INC_INSTALL=%{_includedir}/harbour
|
||||
export HB_LIB_INSTALL=%{_libdir}/%{name}
|
||||
export HB_GTALLEG=%{?_with_allegro:yes}
|
||||
export HB_CONTRIBLIBS="%{?_with_gd:gd} %{?_with_pgsql:pgsql} %{?_with_mysql:mysql}"
|
||||
|
||||
make -r
|
||||
|
||||
######################################################################
|
||||
## Install.
|
||||
######################################################################
|
||||
|
||||
%install
|
||||
|
||||
# Install harbour itself.
|
||||
|
||||
export CC_C_USR="-DHOST_OS_UNIX_COMPATIBLE"
|
||||
export C_USR="$CC_C_USR -O2 -DHB_FM_STATISTICS_OFF"
|
||||
export CC_PRG_USR="-D__PLATFORM__Windows -D__PLATFORM__WINCE -undef:__PLATFORM__UNIX -undef:__PLATFORM__Linux"
|
||||
export PRG_USR="$CC_PRG_USR"
|
||||
export L_USR="${CC_L_USR}"
|
||||
|
||||
export CCPATH="%{hb_ccpath}:"
|
||||
export CCPREFIX="%{hb_ccpref}"
|
||||
export PATH="$CCPATH$PATH"
|
||||
|
||||
export HB_HOST_BUILD=lib
|
||||
export HB_ARCHITECTURE=w32
|
||||
export HB_COMPILER=cemgw
|
||||
export HB_MT=no
|
||||
export HB_GT_LIB=gtwvt
|
||||
export HB_BIN_INSTALL=%{_bindir}
|
||||
export HB_INC_INSTALL=%{_includedir}/harbour
|
||||
export HB_LIB_INSTALL=%{_libdir}/%{name}
|
||||
export HB_GTALLEG=%{?_with_allegro:yes}
|
||||
export HB_CONTRIBLIBS="%{?_with_gd:gd} %{?_with_pgsql:pgsql} %{?_with_mysql:mysql}"
|
||||
|
||||
export _DEFAULT_BIN_DIR=$HB_BIN_INSTALL
|
||||
export _DEFAULT_INC_DIR=$HB_INC_INSTALL
|
||||
export _DEFAULT_LIB_DIR=$HB_LIB_INSTALL
|
||||
export HB_BIN_INSTALL=$RPM_BUILD_ROOT/$HB_BIN_INSTALL
|
||||
export HB_INC_INSTALL=$RPM_BUILD_ROOT/$HB_INC_INSTALL
|
||||
export HB_LIB_INSTALL=$RPM_BUILD_ROOT/$HB_LIB_INSTALL
|
||||
export HB_TOOLS_PREF=%{hb_pref}
|
||||
|
||||
mkdir -p $HB_BIN_INSTALL
|
||||
mkdir -p $HB_LIB_INSTALL
|
||||
|
||||
make -r -i install
|
||||
|
||||
[ "%{?_without_odbc:1}" ] && rm -f $HB_LIB_INSTALL/libhbodbc.a
|
||||
[ "%{?_with_allegro:1}" ] || rm -f $HB_LIB_INSTALL/libgtalleg.a
|
||||
|
||||
# Keep the size of the libraries to a minimim.
|
||||
${CCPREFIX}strip --strip-debug $HB_LIB_INSTALL/*
|
||||
|
||||
# remove unused files
|
||||
rm -fR ${HB_BIN_INSTALL}/{harbour,hbdoc,hbdot,hbmake,hbpp,hbrun,hbtest,hbverfix,pretest}.exe
|
||||
rm -fR ${HB_BIN_INSTALL}/{gharbour,harbour-link}
|
||||
rm -fR $HB_INC_INSTALL
|
||||
|
||||
mv ${HB_BIN_INSTALL}/hb-mkslib ${HB_BIN_INSTALL}/%{hb_pref}-mkslib
|
||||
|
||||
# Create a README file for people using this RPM.
|
||||
cat > doc/%{readme} <<EOF
|
||||
This RPM distribution of Harbour includes extra commands to make compiling
|
||||
and linking with Harbour a little easier. There are compiler and linker
|
||||
wrappers called "%{hb_pref}cc", "%{hb_pref}cmp", "%{hb_pref}lnk" and "%{hb_pref}mk".
|
||||
|
||||
"%{hb_pref}cc" is a wrapper to the C compiler only. It sets all flags
|
||||
and paths necessary to compile .c files which include Harbour header
|
||||
files. The result of its work is an object file.
|
||||
|
||||
Use "%{hb_pref}cmp" exactly as you would use the harbour compiler itself.
|
||||
The main difference with %{hb_pref}cmp is that it results in an object file,
|
||||
not a C file that needs compiling down to an object. %{hb_pref}cmp also
|
||||
ensures that the harbour include directory is seen by the harbour compiler.
|
||||
|
||||
"%{hb_pref}lnk" simply takes a list of object files and links them together
|
||||
with the harbour virtual machine and run-time library to produce an
|
||||
executable. The executable will be given the basename of the first object
|
||||
file if not directly set by the "-o" command line switch.
|
||||
|
||||
"%{hb_pref}mk" tries to produce an executable from your .prg file. It's a simple
|
||||
equivalent of cl.bat from the CA-Clipper distribution.
|
||||
|
||||
All these scripts accept command line switches:
|
||||
-o<outputfilename> # output file name
|
||||
-static # link with static Harbour libs
|
||||
-fullstatic # link with all static libs
|
||||
-shared # link with shared libs (default)
|
||||
-mt # link with multi-thread libs
|
||||
-gt<hbgt> # link with <hbgt> GT driver, can be repeated to
|
||||
# link with more GTs. The first one will be
|
||||
# the default at runtime
|
||||
-xbgtk # link with xbgtk library (xBase GTK+ interface)
|
||||
-hwgui # link with HWGUI library (GTK+ interface)
|
||||
-l<libname> # link with <libname> library
|
||||
-L<libpath> # additional path to search for libraries
|
||||
-fmstat # link with the memory statistics lib
|
||||
-nofmstat # do not link with the memory statistics lib (default)
|
||||
-[no]strip # strip (no strip) binaries
|
||||
-main=<main_func> # set the name of main program function/procedure.
|
||||
# if not set then 'MAIN' is used or if it doesn't
|
||||
# exist the name of first public function/procedure
|
||||
# in first linked object module (link)
|
||||
|
||||
Link options work only with "%{hb_pref}lnk" and "%{hb_pref}mk" and have no effect
|
||||
in "%{hb_pref}cc" and "%{hb_pref}cmp".
|
||||
Other options are passed to Harbour/C compiler/linker.
|
||||
|
||||
An example compile/link session looks like:
|
||||
----------------------------------------------------------------------
|
||||
druzus@uran:~/tmp$ cat foo.prg
|
||||
function main()
|
||||
? "Hello, World!"
|
||||
return nil
|
||||
|
||||
druzus@uran:~/tmp$ %{hb_pref}cmp foo
|
||||
Harbour Compiler Alpha build 46.2 (Flex)
|
||||
Copyright 1999-2006, http://www.harbour-project.org/
|
||||
Compiling 'foo.prg'...
|
||||
Lines 5, Functions/Procedures 2
|
||||
Generating C source output to 'foo.c'... Done.
|
||||
|
||||
druzus@uran:~/tmp$ %{hb_pref}lnk foo.o
|
||||
|
||||
druzus@uran:~/tmp$ ls -l foo
|
||||
-rwxrwxr-x 1 druzus druzus 3824 maj 17 02:46 foo.exe
|
||||
----------------------------------------------------------------------
|
||||
|
||||
or using %{hb_pref}mk only:
|
||||
----------------------------------------------------------------------
|
||||
druzus@uran:~/tmp$ cat foo.prg
|
||||
function main()
|
||||
? "Hello, World!"
|
||||
return nil
|
||||
|
||||
druzus@uran:~/tmp$ %{hb_pref}mk foo
|
||||
Harbour Compiler Alpha build 46.2 (Flex)
|
||||
Copyright 1999-2006, http://www.harbour-project.org/
|
||||
Compiling 'foo.prg'...
|
||||
Lines 5, Functions/Procedures 2
|
||||
Generating C source output to 'foo.c'... Done.
|
||||
|
||||
druzus@uran:~/tmp$ ls -l foo
|
||||
-rwxrwxr-x 1 druzus druzus 3824 maj 17 02:46 foo.exe
|
||||
----------------------------------------------------------------------
|
||||
|
||||
I hope this RPM is useful. Have fun with Harbour.
|
||||
|
||||
Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
EOF
|
||||
|
||||
######################################################################
|
||||
## Post install
|
||||
######################################################################
|
||||
#%post lib
|
||||
#/sbin/ldconfig
|
||||
|
||||
######################################################################
|
||||
## Post uninstall
|
||||
######################################################################
|
||||
#%postun lib
|
||||
#/sbin/ldconfig
|
||||
|
||||
######################################################################
|
||||
## Clean.
|
||||
######################################################################
|
||||
|
||||
%clean
|
||||
rm -fR $RPM_BUILD_ROOT
|
||||
|
||||
######################################################################
|
||||
## File list.
|
||||
######################################################################
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,755)
|
||||
%doc doc/%{readme}
|
||||
|
||||
%{_bindir}/%{hb_pref}-mkslib
|
||||
%{_bindir}/%{hb_pref}-build
|
||||
%{_bindir}/%{hb_pref}cc
|
||||
%{_bindir}/%{hb_pref}cmp
|
||||
%{_bindir}/%{hb_pref}lnk
|
||||
%{_bindir}/%{hb_pref}mk
|
||||
|
||||
%defattr(644,root,root,755)
|
||||
%dir %{_libdir}/%{name}
|
||||
%{_libdir}/%{name}/libcodepage.a
|
||||
%{_libdir}/%{name}/libcommon.a
|
||||
%{_libdir}/%{name}/libcompiler.a
|
||||
%{_libdir}/%{name}/libdebug.a
|
||||
%{_libdir}/%{name}/libfm.a
|
||||
%{_libdir}/%{name}/libdb*.a
|
||||
%{_libdir}/%{name}/libgt*.a
|
||||
%{_libdir}/%{name}/liblang.a
|
||||
%{_libdir}/%{name}/libmacro.a
|
||||
%{_libdir}/%{name}/libhbpcre.a
|
||||
%{_libdir}/%{name}/libnulsys.a
|
||||
%{_libdir}/%{name}/libpp.a
|
||||
%{_libdir}/%{name}/librdd.a
|
||||
%{_libdir}/%{name}/libhsx.a
|
||||
%{_libdir}/%{name}/libhbsix.a
|
||||
%{_libdir}/%{name}/librtl.a
|
||||
%{_libdir}/%{name}/libsamples.a
|
||||
%{_libdir}/%{name}/libvm.a
|
||||
%{_libdir}/%{name}/libmainstd.a
|
||||
%{_libdir}/%{name}/libmainwin.a
|
||||
%{_libdir}/%{name}/libusrrdd.a
|
||||
|
||||
%{!?_without_odbc: %{_libdir}/%{name}/libhbodbc.a}
|
||||
%{!?_without_adsrdd: %{_libdir}/%{name}/librddads.a}
|
||||
%{!?_without_nf: %{_libdir}/%{name}/libnf.a}
|
||||
%{?_with_mysql: %{_libdir}/%{name}/libhbmysql.a}
|
||||
%{?_with_pgsql: %{_libdir}/%{name}/libhbpg.a}
|
||||
%{?_with_gd: %{_libdir}/%{name}/libhbgd.a}
|
||||
%{_libdir}/%{name}/libhbbtree.a
|
||||
%{_libdir}/%{name}/libhtml.a
|
||||
%{_libdir}/%{name}/libmisc.a
|
||||
%{_libdir}/%{name}/libct.a
|
||||
%{_libdir}/%{name}/libtip.a
|
||||
%{_libdir}/%{name}/libxhb.a
|
||||
%{_libdir}/%{name}/libadordd.a
|
||||
%{_libdir}/%{name}/libhbwin32.a
|
||||
|
||||
%defattr(755,root,root,755)
|
||||
%{_libdir}/%{name}/*.dll
|
||||
|
||||
######################################################################
|
||||
## Spec file Changelog.
|
||||
######################################################################
|
||||
|
||||
%changelog
|
||||
* Thu Oct 23 2007 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
- initial release
|
||||
114
harbour/make_rpmce.sh
Executable file
114
harbour/make_rpmce.sh
Executable file
@@ -0,0 +1,114 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# Copyright 2007 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
# simple script to build Harbour-WinCE cross build RPMs
|
||||
#
|
||||
# See doc/license.txt for licensing terms.
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
######################################################################
|
||||
# Conditional build:
|
||||
# --with mysql - build mysql lib
|
||||
# --with pgsql - build pgsql lib
|
||||
# --with gd - build gd lib
|
||||
# --with allegro - build GTALLEG - Allegro based GT driver
|
||||
# --without odbc - do not build odbc lib
|
||||
# --without adsrdd - do not build ADS RDD
|
||||
# --without nf - do not build nanforum lib
|
||||
######################################################################
|
||||
|
||||
test_reqrpm()
|
||||
{
|
||||
rpm -q --whatprovides "$1" &> /dev/null
|
||||
}
|
||||
|
||||
get_rpmmacro()
|
||||
{
|
||||
local R X Y
|
||||
|
||||
R=`rpm --showrc|sed -e "/^-14:.${1}[^a-z0-9A-Z_]/ !d" -e "s/^-14: ${1}.//"`
|
||||
X=`echo "${R}"|sed -e "s/.*\(%{\([^}]*\)}\).*/\2/"`
|
||||
while [ "${X}" != "${R}" ]
|
||||
do
|
||||
Y=`get_rpmmacro "$X"`
|
||||
if [ -n "${Y}" ]
|
||||
then
|
||||
R=`echo "${R}"|sed -e "s!%{${X}}!${Y}!g"`
|
||||
X=`echo "${R}"|sed -e "s/.*\(%{\([^}]*\)}\).*/\2/"`
|
||||
else
|
||||
X="${R}"
|
||||
fi
|
||||
done
|
||||
echo -n "${R}"
|
||||
}
|
||||
|
||||
NEED_RPM="make gcc binutils bash cegcc-mingw32ce"
|
||||
|
||||
FORCE=""
|
||||
|
||||
LAST=""
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
if [ "$1" = "--force" ]
|
||||
then
|
||||
FORCE="yes"
|
||||
else
|
||||
INST_PARAM="${INST_PARAM} $1"
|
||||
fi
|
||||
LAST="$1"
|
||||
shift
|
||||
done
|
||||
|
||||
TOINST_LST=""
|
||||
for i in ${NEED_RPM}
|
||||
do
|
||||
test_reqrpm "$i" || TOINST_LST="${TOINST_LST} $i"
|
||||
done
|
||||
|
||||
if [ -z "${TOINST_LST}" ] || [ "${FORCE}" = "yes" ]
|
||||
then
|
||||
. ./bin/pack_src.sh
|
||||
stat="$?"
|
||||
if [ -z "${hb_filename}" ]
|
||||
then
|
||||
echo "The script ./bin/pack_src.sh doesn't set archive name to \${hb_filename}"
|
||||
exit 1
|
||||
elif [ "${stat}" != 0 ]
|
||||
then
|
||||
echo "Error during packing the sources in ./bin/pack_src.sh"
|
||||
exit 1
|
||||
elif [ -f ${hb_filename} ]
|
||||
then
|
||||
if [ `id -u` != 0 ] && [ ! -f ${HOME}/.rpmmacros ]
|
||||
then
|
||||
RPMDIR="${HOME}/RPM"
|
||||
mkdir -p ${RPMDIR}/SOURCES ${RPMDIR}/RPMS ${RPMDIR}/SRPMS \
|
||||
${RPMDIR}/BUILD ${RPMDIR}/SPECS
|
||||
echo "%_topdir ${RPMDIR}" > ${HOME}/.rpmmacros
|
||||
else
|
||||
RPMDIR=`get_rpmmacro "_topdir"`
|
||||
fi
|
||||
cp ${hb_filename} ${RPMDIR}/SOURCES/
|
||||
cp harbour-ce-spec ${RPMDIR}/SPECS/harbour-ce.spec
|
||||
if which rpmbuild &>/dev/null
|
||||
then
|
||||
RPMBLD="rpmbuild"
|
||||
else
|
||||
RPMBLD="rpm"
|
||||
fi
|
||||
cd ${RPMDIR}/SPECS
|
||||
${RPMBLD} -ba harbour-ce.spec ${INST_PARAM}
|
||||
else
|
||||
echo "Cannot find archive file: ${hb_filename}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "If you want to build Harbour compiler"
|
||||
echo "you have to install the folowing RPM files:"
|
||||
echo "${TOINST_LST}"
|
||||
exit 1
|
||||
fi
|
||||
@@ -4,30 +4,27 @@
|
||||
|
||||
ROOT = ../
|
||||
|
||||
ifeq ($(HB_COMPILER),bcc16)
|
||||
|
||||
# Don't build the Harbour compiler for 16-bit DOS,
|
||||
# because it frequently runs out of memory, so it
|
||||
# is necessary to use the DJGPP Harbour compiler.
|
||||
|
||||
DIRS=\
|
||||
common \
|
||||
pp \
|
||||
rtl \
|
||||
vm \
|
||||
macro \
|
||||
codepage \
|
||||
lang \
|
||||
rdd \
|
||||
debug \
|
||||
|
||||
else
|
||||
ifeq ($(HB_HOST_BUILD),yes)
|
||||
|
||||
DIRS=\
|
||||
common \
|
||||
pp \
|
||||
compiler \
|
||||
main \
|
||||
|
||||
else
|
||||
|
||||
ifeq ($(HB_HOST_BUILD),lib)
|
||||
HB_COMP_DIR=
|
||||
else
|
||||
HB_COMP_DIR=main
|
||||
endif
|
||||
|
||||
DIRS=\
|
||||
common \
|
||||
pp \
|
||||
compiler \
|
||||
$(HB_COMP_DIR) \
|
||||
rtl \
|
||||
vm \
|
||||
macro \
|
||||
|
||||
Reference in New Issue
Block a user