diff --git a/harbour/harbour.spec b/harbour/harbour.spec new file mode 100644 index 0000000000..35c525741b --- /dev/null +++ b/harbour/harbour.spec @@ -0,0 +1,856 @@ +# +# $Id$ +# + +# --------------------------------------------------------------- +# Copyright 2003 Przemyslaw Czerpak , +# Dave Pearson +# Harbour RPM spec file +# +# See doc/license.txt for licensing terms. +# --------------------------------------------------------------- + +###################################################################### +## Definitions. +###################################################################### + +%define name harbour +%define dname Harbour +%define version 0.42.0 +%define releasen 0 +%define platform rh73 +%define prefix /usr +%define hb_pref hb +%define hb_gt sln +%define hb_gpm yes +%define hb_mt no +%define hb_mgt no +%define hb_lnkso yes +%define hb_libs vm pp rtl rdd dbfdbt dbffpt dbfcdx dbfntx macro common lang codepage gtnul gtcrs gtsln gtcgi gtstd gtpca odbc ct debug profiler +%define hb_cc export HB_COMPILER=gcc +%define hb_cflag export C_USR="-DHB_FM_STATISTICS_OFF -O3" +%define hb_arch export HB_ARCHITECTURE=linux +%define hb_cmt export HB_MT=%{hb_mt} +%define hb_cgt export HB_GT_LIB=gt%{hb_gt} +%define hb_cgpm export HB_GPM_MOUSE=%{hb_gpm} +%define hb_cmgt export HB_MULTI_GT=%{hb_mgt} +%define hb_bdir export HB_BIN_INSTALL=%{prefix}/bin +%define hb_idir export HB_INC_INSTALL=%{prefix}/include/%{name} +%define hb_ldir export HB_LIB_INSTALL=%{prefix}/lib/%{name} +%define hb_env %{hb_cc} ; %{hb_cflag} ; %{hb_arch} ; %{hb_cmt} ; %{hb_cgt} ; %{hb_cgpm} ; %{hb_cmgt} ; %{hb_bdir} ; %{hb_idir} ; %{hb_ldir} +%define hb_host www.harbour-project.org +%define readme README.RPM +###################################################################### +## Preamble. +###################################################################### + +Summary: Free software Clipper compatible compiler +Summary(pl): Darmowy kompilator kompatybilny z językiem Clipper. +Summary(pt_BR): Um compilador Clipper compativel Gratis +Name: %{name} +Version: %{version} +Release: %{releasen}%{platform} +Prefix: %{prefix} +Copyright: GPL (plus exception) +Group: Development/Languages +Vendor: %{hb_host} +URL: http://%{hb_host}/ +Source: %{name}-%{version}.src.tar.gz +Packager: Przemysław Czerpak Luiz Rafael Culik Guimaraes +BuildPrereq: gcc binutils bash bison ncurses ncurses-devel slang-devel gpm-devel +Requires: gcc binutils bash sh-utils %{name}-lib = %{version} +Provides: %{name} harbour +BuildRoot: /tmp/%{name}-%{version}-root + +%description +%{dname} is a CA-Clipper compatible compiler for multiple platforms. This +package includes a compiler, pre-processor, header files, virtual machine +and documentation. + +See README.RPM in the documentation directory for information specific to +this RPM distribution. + +%description -l pl +%{dname} 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 dokumentację. + +%description -l pt_BR +%{dname} ‚ um compilador Clipper compativel para multiplas plataformas. +Esse pacote contem um compilador ,um pr‚-processador, arquivos de cabe‡alho +uma maquina virtual e documenta‡Ćo + + +###################################################################### +## main shared lib +###################################################################### + +%package lib +Summary: Shared runtime libaries for %{dname} compiler +Summary(pl): Dzielone bilioteki dla kompilatora %{dname} +Group: Development/Languages +Provides: lib%{name}.so lib%{name}mt.so + +%description lib +%{dname} is a Clipper compatible compiler. +This package provides %{dname} runtime shared libraries for programs +linked dynamically. + +%description -l pl lib +%{dname} to kompatybilny z językiem CA-Clipper kompilator. +Ten pakiet udostępnia dzielone bilioteki kompilatora %{dname} +dla programów konsolidowanych dynamicznie. + +%description -l pt_BR lib +%{dname} ‚ um compilador compativel com o Clipper. +Esse pacote %{dname} provem as bibliotecas compartilhadas para programas +linkados dinamicamente + + +###################################################################### +## static libs +###################################################################### + +%package static +Summary: Static runtime libaries for %{dname} compiler +Summary(pl): Statyczne bilioteki dla kompilatora %{dname} +Group: Development/Languages +Requires: %{name} = %{version} + +%description static +%{dname} is a Clipper compatible compiler. +This package provides %{dname} static runtime libraries for static +program linking. + +%description -l pl static +%{dname} to kompatybilny z językiem CA-Clipper kompilator. +Ten pakiet udostępnia statyczne bilioteki dla kompilatora %{dname} +niezbędne do statycznej konsolidacji programów. + +%description -l pt_BR static +%{dname} ‚ um compilador compativel com o clippe. +Esse pacote %{dname} provem as bibliotecas de run time staticas para linkagem +dos os programas + + +###################################################################### +## PP +###################################################################### + +%package pp +Summary: Clipper/Harbour/xBase compatible Pre-Processor, DOT prompt and interpreter +Summary(pl): Kompatybilny z Clipper/Harbour/xBase Preprocesor i interpreter +Copyright: GPL +Group: Development/Languages +Requires: %{name} = %{version} + +%description pp +%{dname} is a Clipper compatible compiler. +This package provides %{dname} PP. It has 3 personalities which are tied +tightly together. +1. What is supposed to be 100% Clipper compatible Pre-Processor + (with some extensions). +2. DOT prompt, which suppose to allow most of Clipper syntax. +3. Finally, PP is a limited Clipper/Harbour/xBase Interpreter. Subject + to those same few limitations it can execute most of Harbour syntax. + You can write your own xBase scripts by adding to your .prg files + #!/usr/bin/pprun + +%description -l pl pp +%{dname} to kompatybilny z językiem CA-Clipper kompilator. +Ten pakiet udostępnia %{dname} PP, który daje trzy narzędzia w jednym. +1. W 100% kompatybilny z Clipperem preprocesor (z pewnymi rozeszerzeniami) +2. ¦rodowisko DOT, w którym można używać większo¶ci składni Clippera +3. PP to także nieco ograniczony interpreter Clippera. Z uwzględnieniem + wspomnianych kilku ograniczeń potrafi on uruchomić większo¶ć składni + Harbour. Możesz napisać swój własny skrypt xBase dodaj±c do pliku .prg + #!/usr/bin/pprun + +%description -l pt_BR pp +%{dname} ‚ um compilador Clipper compativel. +Esse pacote provem o %{dname} PP. Ele tem 3 caracteristicas dependentes +uma da outra. +1. Que e supostamente ser um Pre-Processor 100% compativel com o Clipper + (com algumas extenssäes). +2. DOT prompt, que supostamente permite a maioria das syntaxes do Clipper. +3. Finalmente, PP ‚ um limitado Interpretador Clipper/Harbour/xBase . Sujeito + com algumas limita‡äes que pode executar a maioria da syntaxe do Harbour. + Voce pode escrever seus proprios scritps em .prg ao adicionar as seus arquivos + .prg #!/usr/bin/pprun + + +###################################################################### +## Preperation. +###################################################################### + +%prep +%setup -c %{name} +rm -rf $RPM_BUILD_ROOT + +###################################################################### +## Build. +###################################################################### + +%build +%{hb_env} + +make + +# build CT lib +pushd contrib/libct + make +popd + +###################################################################### +## Install. +###################################################################### + +%install + +# Install harbour itself. + +%{hb_env} + +_DEFAULT_INC_DIR=$HB_INC_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 + +mkdir -p $HB_BIN_INSTALL +mkdir -p $HB_INC_INSTALL +mkdir -p $HB_LIB_INSTALL +mkdir -p $RPM_BUILD_ROOT/usr/lib + +make -i install + +# install CT lib +pushd contrib/libct + make -i install +popd + +# build fm lib with memory statistic +pushd source/vm + TMP_C_USR=$C_USR + C_USR=${C_USR//-DHB_FM_STATISTICS_OFF/-DHB_PARANOID_MEM_CHECK} + rm -f fm.o + make fm.o + ar -r $HB_LIB_INSTALL/libfm.a fm.o + rm -f fm.o + make fm.o 'HB_LIBCOMP_MT=YES' + ar -r $HB_LIB_INSTALL/libfmmt.a fm.o + rm -f fm.o + C_USR=$TMP_C_USR +popd + +# Keep the size of the binaries to a minimim. +strip $HB_BIN_INSTALL/* +# Keep the size of the libraries to a minimim. +strip --strip-debug $HB_LIB_INSTALL/* + +install -m755 bin/hb-mkslib.sh $HB_BIN_INSTALL/hb-mkslib + +pushd $HB_LIB_INSTALL +LIBS="" +LIBSMT="" +for l in %{hb_libs} +do + case $l in + debug|profiler) ;; + *) + ls="lib${l}.a" + if [ -f lib${l}mt.a ] + then + lm="lib${l}mt.a" + else + lm="${ls}" + fi + if [ "${HB_MULTI_GT}" = "yes" ] || \ + [ "${l#gt}" = "${l}" ] || \ + [ "${l}" == "${HB_GT_LIB}" ] + then + if [ -f $ls ] + then + LIBS="$LIBS $ls" + fi + if [ -f $lm ] + then + LIBSMT="$LIBSMT $lm" + fi + fi + ;; + esac +done +$HB_BIN_INSTALL/hb-mkslib lib%{name}-%{version}.so $LIBS +[ $HB_MT != "MT" ] || $HB_BIN_INSTALL/hb-mkslib lib%{name}mt-%{version}.so $LIBSMT +for l in lib%{name}-%{version}.so lib%{name}mt-%{version}.so +do + if [ -f $l ] + then + ll=${l%%-%{version}.so}.so + ln -s $l $ll && ln -s %{name}/$l $RPM_BUILD_ROOT/usr/lib/$ll + fi +done +#export LD_LIBRARY_PATH="$HB_LIB_INSTALL:$LD_LIBRARY_PATH" +popd + +# Add a harbour compiler wrapper. +cat > $HB_BIN_INSTALL/%{hb_pref}-build <] [.prg|.o] + +\"%{hb_pref}cc\", \"%{hb_pref}cmp\", \"%{hb_pref}lnk\" and \"%{hb_pref}mk\" parameters: + -o # output file name +\"%{hb_pref}lnk\" and \"%{hb_pref}mk\" parameters: + -static # link with static %{dname} libs + -fullstatic # link with all static libs + -shared # link with shared libs (default) + -mt # link with multi-thread libs + -gt # link with GT driver, can be repeated to + # link with more GTs. The first one will be + # the default at runtime + -fmstat # link with the memory statistics lib + -nofmstat # do not link with the memory statistics lib (default) + -main= # 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) +" + exit 1 +elif [ "\$*" == "mk-links" ]; then + DIR="\${0%/*}" + NAME="\${0##*/}" + if [ "\${DIR}" != "\${NAME}" ]; then + for n in %{hb_pref}cc %{hb_pref}cmp %{hb_pref}mk %{hb_pref}lnk gharbour harbour-link; do + ln -sf "\${NAME}" "\${DIR}/\${n}" + done + fi + exit +fi + +## default parameters +HB_STATIC="no" +HB_MT="" +HB_GT="%{hb_gt}" +HB_MG="%{hb_mgt}" + +HB_GT_REQ="" +HB_FM_REQ="" +HB_MAIN_FUNC="" +_TMP_FILE_="/tmp/hb-build-\$USER-\$\$.c" + +## parse params +P=( "\$@" ); n=0; DIROUT="."; FILEOUT="" +while [ \$n -lt \${#P[@]} ]; do + v=\${P[\$n]}; p="" + case "\$v" in + -o*) + d="\${v#-o}"; p="\${v}" + if [ -d "\${d}" ]; then + DIROUT="\${d%/}" + elif [ -d "\${d%/*}" ]; then + DIROUT="\${d%/*}"; FILEOUT="\${d##*/}"; p="-o\${d%.*}" + elif [ -n "\${d}" ]; then + FILEOUT="\${d}"; p="-o\${d%.*}" + fi ;; + -static) HB_STATIC="yes" ;; + -fullstatic) HB_STATIC="full" ;; + -shared) HB_STATIC="no" ;; + -mt) HB_MT="MT" ;; + -gt*) HB_GT_REQ="\${HB_GT_REQ} \${v#-gt}" ;; + -fmstat) HB_FM_REQ="STAT" ;; + -nofmstat) HB_FM_REQ="NOSTAT" ;; + -main=*) HB_MAIN_FUNC="\${v#*=}" ;; + -*) p="\${v}" ;; + *) [ -z \${FILEOUT} ] && FILEOUT="\${v##*/}"; p="\${v}" ;; + esac + [ -n "\$p" ] && PP[\$n]="\$p" + n=\$[\$n + 1] +done +P=( "\${PP[@]}" ) + +case "\${HB_MT}" in + [Mm][Tt]|[Yy][Ee][Ss]|1) HB_MT="MT";; + *) HB_MT="";; +esac + +SYSTEM_LIBS="-lm -lncurses -lslang -lgpm" +# use pthread system library for MT programs +if [ "\${HB_MT}" = "MT" ]; then + SYSTEM_LIBS="-lpthread \${SYSTEM_LIBS}" +fi + +HB_GT_STAT="" +[ -z "\${HB_GT_REQ}" ] && HB_GT_REQ="\${HB_GT}" +if [ "\${HB_MG}" != "yes" ]; then + [ "\${HB_STATIC}" = "yes" ] && HB_GT_STAT=\`echo \${HB_GT_REQ}|tr A-Z a-z\` + HB_GT_REQ="" +else + HB_GT_REQ=\`echo \${HB_GT_REQ}|tr a-z A-Z\` +fi +HB_MAIN_FUNC=\`echo \${HB_MAIN_FUNC}|tr a-z A-Z\` + +# set environment variables +%{hb_arch} +%{hb_cc} +[ -z "\${HB_BIN_INSTALL}" ] && %{hb_bdir} +[ -z "\${HB_INC_INSTALL}" ] && %{hb_idir} +[ -z "\${HB_LIB_INSTALL}" ] && %{hb_ldir} + +# be sure that %{name} binaries are in your path +export PATH="\${HB_BIN_INSTALL}:\${PATH}" + +HB_PATHS="-I\${HB_INC_INSTALL}" +GCC_PATHS="\${HB_PATHS} -L\${HB_LIB_INSTALL}" +LINK_OPT="" +if [ "\${HB_STATIC}" = "full" ]; then + LINK_OPT="\${LINK_OPT} -static" + HB_STATIC="yes" +fi + +HARBOUR_LIBS="" +if [ "\${HB_STATIC}" = "yes" ]; then + libs="%{hb_libs}" +else + l="%{name}" + [ "\${HB_MT}" = "MT" ] && [ -f "\${HB_LIB_INSTALL}/lib\${l}mt.so" ] && l="\${l}mt" + [ -f "\${HB_LIB_INSTALL}/lib\${l}.so" ] && HARBOUR_LIBS="\${HARBOUR_LIBS} -l\${l}" + libs="debug profiler" +fi +for l in \${libs} +do + if [ "\${HB_MG}" = "yes" ] || [ "\${l#gt}" = "\${l}" ] || [ "\${l}" == "gt\${HB_GT_STAT}" ]; then + [ "\${HB_MT}" = "MT" ] && [ -f "\${HB_LIB_INSTALL}/lib\${l}mt.a" ] && l="\${l}mt" + [ -f "\${HB_LIB_INSTALL}/lib\${l}.a" ] && HARBOUR_LIBS="\${HARBOUR_LIBS} -l\${l}" + fi +done +HARBOUR_LIBS="-Wl,--start-group \${HARBOUR_LIBS} -Wl,--end-group" +l="fm" +[ "\${HB_MT}" = "MT" ] && [ -f "\${HB_LIB_INSTALL}/lib\${l}mt.a" ] && l="\${l}mt" +if [ -f "\${HB_LIB_INSTALL}/lib\${l}.a" ]; then + if [ "\${HB_STATIC}" = "yes" ] && [ "\${HB_FM_REQ}" = "STAT" ]; then + HARBOUR_LIBS="-l\${l} \${HARBOUR_LIBS}" + else + HARBOUR_LIBS="\${HARBOUR_LIBS} -l\${l}" + fi +fi + +FOUTC="\${DIROUT}/\${FILEOUT%.*}.c" +FOUTO="\${DIROUT}/\${FILEOUT%.*}.o" +FOUTE="\${DIROUT}/\${FILEOUT%.[Pp][Rr][Gg]}" +FOUTE="\${FOUTE%.[oc]}" + +hb_cc() +{ + harbour "\$@" \${HB_PATHS} && [ -f "\${FOUTC}" ] +} + +hb_link() +{ + if [ -n "\${HB_MAIN_FUNC}" ]; then + HB_MAIN_FUNC="@\${HB_MAIN_FUNC}" + elif [ -f "\${FOUTO}" ]; then + HB_MAIN_FUNC=\`hb_lnk_main "\${FOUTO}"\` + fi + if [ -n "\${HB_GT_REQ}" ] || [ -n "\${HB_FM_REQ}" ] || [ -n "\${HB_MAIN_FUNC}" ]; then + hb_lnk_request > \${_TMP_FILE_} && \\ + gcc "\$@" "\${_TMP_FILE_}" \${LINK_OPT} \${GCC_PATHS} \${HARBOUR_LIBS} \${SYSTEM_LIBS} -o "\${FOUTE}" + else + gcc "\$@" \${LINK_OPT} \${GCC_PATHS} \${HARBOUR_LIBS} \${SYSTEM_LIBS} -o "\${FOUTE}" + fi +} + +hb_cmp() +{ + hb_cc "\$@" && \\ + gcc -g -c "\${FOUTC}" -o "\${FOUTO}" \${GCC_PATHS} && \\ + rm -f "\${FOUTC}" +} + +hb_lnk_request() +{ + echo "#include \\"hbapi.h\\"" + if [ "\${HB_STATIC}" = "yes" ] || [ -n "\${HB_FM_REQ}" ]; then + for gt in \${HB_GT_REQ}; do + echo "extern HB_FUNC( HB_GT_\${gt} );" + done + if [ -n "\${HB_FM_REQ}" ]; then + echo "extern HB_FUNC( HB_FM_\${HB_FM_REQ} );" + fi + echo "void hb_lnk_ForceLink_build( void )" + echo "{" + for gt in \${HB_GT_REQ}; do + echo " HB_FUNCNAME( HB_GT_\${gt} )();" + done + if [ -n "\${HB_FM_REQ}" ]; then + echo " HB_FUNCNAME( HB_FM_\${HB_FM_REQ} )();" + fi + echo "}" + fi + gt="\${HB_GT_REQ%%%% *}" + if [ -n "\$gt" ] || [ -n "\${HB_MAIN_FUNC}" ]; then + echo "#include \\"hbinit.h\\"" + echo "extern char * s_defaultGT;" + echo "extern char * s_pszLinkedMain;" + echo "HB_CALL_ON_STARTUP_BEGIN( hb_lnk_SetDefault_build )" + if [ -n "\$gt" ]; then + echo " s_defaultGT = \\"\$gt\\";" + fi + if [ -n "\${HB_MAIN_FUNC}" ]; then + echo " s_pszLinkedMain = \\"\${HB_MAIN_FUNC}\\";" + fi + echo "HB_CALL_ON_STARTUP_END( hb_lnk_SetDefault_build )" + fi +} + +hb_lnk_main() +{ +# (nm \$1 -g -n --defined-only|sed -e '/HB_FUN_/ ! d' -e 's/^[0-9a-fA-F]* T HB_FUN_//'|head -1|grep -v '^MAIN\$')2>/dev/null + (nm \$1 -n --defined-only|sed -e '/HB_FUN_/ ! d' -e 's/^[0-9a-fA-F]* [Tt] HB_FUN_//'|head -1|grep -v '^MAIN\$')2>/dev/null +} + +hb_cleanup() +{ + rm -f "\${_TMP_FILE_}" +} + +trap hb_cleanup EXIT &>/dev/null + +## get basename +HB="\${0##*/}" + +case "\${HB}" in + *cc) + hb_cc "\${P[@]}" + ;; + *cmp|gharbour) + hb_cmp "\${P[@]}" + ;; + *lnk|harbour-link) + hb_link "\${P[@]}" + ;; + *mk) + hb_cmp "\${P[@]}" && \\ + hb_link "\${FOUTO}" && \\ + strip "\${FOUTE}" && \\ + rm -f "\${FOUTO}" + ;; +esac +EOF +chmod 755 $HB_BIN_INSTALL/%{hb_pref}-build +$HB_BIN_INSTALL/%{hb_pref}-build mk-links + +mkdir -p $RPM_BUILD_ROOT/etc/harbour +#install -m644 source/rtl/gtcrs/hb-charmap.def $RPM_BUILD_ROOT/etc/harbour/hb-charmap.def +cat > $RPM_BUILD_ROOT/etc/harbour.cfg < doc/%{readme} < # output file name +-static # link with static %{dname} libs +-fullstatic # link with all static libs +-shared # link with shared libs (default) +-mt # link with multi-thread libs +-gt # link with GT driver, can be repeated to + # link with more GTs. The first one will be + # the default at runtime +-fmstat # link with the memory statistics lib +-nofmstat # do not link with the memory statistics lib (default) +-main= # 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 %{dname}/C compiler/linker. +To save compatibility with older rpm distributions, "gharbour" can be used +as a synonym of "%{hb_pref}cmp", and "harbour-link" as synonym of "%{hb_pref}lnk" + +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 +xHarbour Compiler build 0.80.0 (SimpLex) +Copyright 1999-2003, http://www.xharbour.org 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$ strip foo + +druzus@uran:~/tmp$ ls -l foo +-rwxrwxr-x 1 druzus druzus 3824 maj 17 02:46 foo +---------------------------------------------------------------------- + +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 +xHarbour Compiler build 0.80.0 (SimpLex) +Copyright 1999-2003, http://www.xharbour.org 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 +---------------------------------------------------------------------- + + +In this RPM you will find additional wonderful tools: /usr/bin/pprun +You can run clipper/xbase compatible source files with it if you only +put in their first line: +#!/usr/bin/pprun + +For example: +---------------------------------------------------------------------- +druzus@uran:~/tmp$ cat foo.prg +#!/usr/bin/pprun +function main() +? "Hello, World!, This is a script !!! :-)" +return nil + +druzus@uran:~/tmp$ chmod +x foo.prg + +druzus@uran:~/tmp$ ./foo.prg + + +I hope this RPM is useful. Have fun with %{dname}. + +Many thanks to Dave Pearson + +Przemyslaw Czerpak +EOF + +###################################################################### +## Post install +###################################################################### +#%post lib +#/sbin/ldconfig + +###################################################################### +## Post uninstall +###################################################################### +#%postun lib +#/sbin/ldconfig + +###################################################################### +## Clean. +###################################################################### + +%clean +rm -rf $RPM_BUILD_ROOT + +###################################################################### +## File list. +###################################################################### + +%files +%defattr(-,root,root,755) +%doc ChangeLog +%doc doc/*.txt +%doc doc/%{readme} +%doc doc/en/ +%doc doc/es/ + +%dir /etc/harbour +/etc/harbour.cfg +#/etc/harbour/hb-charmap.def +%{prefix}/bin/harbour +%{prefix}/bin/hb-mkslib +%{prefix}/bin/%{hb_pref}-build +%{prefix}/bin/%{hb_pref}cc +%{prefix}/bin/%{hb_pref}cmp +%{prefix}/bin/%{hb_pref}lnk +%{prefix}/bin/%{hb_pref}mk +%{prefix}/bin/gharbour +%{prefix}/bin/harbour-link +#%{prefix}/bin/hbtest +%{prefix}/bin/hbrun +%{prefix}/bin/hbpp +%{prefix}/bin/hbmake +%dir %{prefix}/include/%{name} +%{prefix}/include/%{name}/* + +%files static +%defattr(-,root,root,755) +%dir %{prefix}/lib/%{name} +%{prefix}/lib/%{name}/*.a + +%files lib +%defattr(-,root,root,755) +%dir %{prefix}/lib/%{name} +%{prefix}/lib/%{name}/*.so +%{prefix}/lib/*.so + +%files pp +%defattr(-,root,root,755) +%doc contrib/dot/pp.txt +%{prefix}/bin/pp +%{prefix}/bin/pprun + +###################################################################### +## Spec file Changelog. +###################################################################### + +%changelog +* Sat Aug 09 2003 Przemyslaw Czerpak +- removed ${RPM_OPT_FLAGS} from C_USR + +* Wed Jul 23 2003 Przemyslaw Czerpak +- fixed file (user and group) owner for RPMs builded from non root account +- shared lib names changed from [x]harbour{mt,}.so to + [x]harbour{mt,}-.so and soft links with short names created +- 0.82 version set + +* Wed Apr 30 2003 Przemyslaw Czerpak +- new tool "%{hb_pref}-build" (%{hb_pref}cmp, %{hb_pref}lnk, %{hb_pref}mk) added - + compiler/linker wrapper. +- new tool "hb-mkslib" (build shared libraries from static ones and object + files). +- shared libraries added. +- binary package divided. + +* Fri Mar 08 2002 Dave Pearson +- Fixed gharbour so that it should work no matter the case of the name of + the PRG file. + +* Wed Feb 13 2002 Dave Pearson +- Fixed a bug in harbour-link which meant that, since the environment + changes of Jan 17 2002, users could not specify which GT library they + wanted their application linked against. + +* Tue Jan 22 2002 Dave Pearson +- Used the "name" macro a lot more, especially in some paths. + +* Thu Jan 17 2002 Dave Pearson +- Removed the use of the /etc/profile.d scripts for setting the + harbour environment variables. The settings are now placed + directly in gharbour and harbour-link. This means that this .spec + file should be more useful on RPM using platforms other than RedHat. + +* Wed Dec 19 2001 Dave Pearson +- Added a platform ID to the name of the RPM. + +* Mon Dec 17 2001 Dave Pearson +- todo.txt is now called TODO. + +* Tue Aug 21 2001 Dave Pearson +- Added todo.txt as a doc file. + +* Sun Jul 22 2001 Dave Pearson +- harbour-link now fully respects the setting of $HB_GT_LIB. +- HB_GT_LIB wasn't set in the csh startup script. Fixed. + +* Fri Jul 20 2001 Dave Pearson +- Added the setting of $HB_GT_LIB to the environment (ncurses is used). +- Added support for installing hbmake. + +* Mon Jun 28 2001 Dave Pearson +- Changed the gharbour script so that it only invokes the C compiler if a C + file was output. This stops any error messages when someone is using the + -g option to output other target types. + +* Mon Mar 19 2001 Dave Pearson +- Reinstated hbrun in the files section. + +* Tue Feb 20 2001 Dave Pearson +- Added README.RPM to the documentation directory. + +* Sat Jan 06 2001 Dave Pearson +- The gharbour script now passes the harbour include directory, using -I, + to harbour. + +* Thu Aug 24 2000 Dave Pearson +- Changed the files section so that hbrun doesn't get installed. It isn't + useful on GNU/Linux systems. + +* Tue Aug 22 2000 Dave Pearson +- Changed the 'egcs' requirement to 'gcc'. + +* Mon Aug 21 2000 Przemyslaw Czerpak +- Polish translation added +- BuildRoot marco added. Now you can build the package from normal user + account. +- bison and flex added to BuildPrereq list +- Debug information is stripped from installed files. + +* Wed Aug 02 2000 Dave Pearson +- Removed hbtest from the list of files installed into the bin directory. +- Added 'bash' and 'sh-utils' to the list of required packages. + +* Tue Aug 01 2000 Dave Pearson +- Added harbour environment scripts to /etc/profile.d. +- Added generation of gharbour and harbour-link commands. + +* Mon Jul 31 2000 Dave Pearson +- Re-worked the layout of the spec file to make it cleaner and easier to + read and maintain. +- The latest harbour ChangeLog is now installed into the RPM's doc + directory. +- The content of the RPM's doc directory reflects the layout and content of + the harbour source's doc directory.