From 683a0e2621b22b5cef8926ce5101794ef3e4ab92 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 23 Nov 2007 04:02:37 +0000 Subject: [PATCH] 2007-11-23 04:59 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * make_b32.bat * make_vc.bat * make_vcce.bat + Accepts "Install" and "Clean" consistently. ! Not directly modifying C_USR, instead use CFLAGS internally. * contrib/make_b32_all.bat * contrib/make_vc_all.bat * contrib/make_b32.bat * contrib/make_vc.bat * contrib/mtpl_b32.bat * contrib/mtpl_vc.bat * contrib/mtpl_b32.mak * contrib/mtpl_vc.mak - contrib/mtpl_defs.mak % Removed COPYCMD requirement. ! Not modifying any user level envvars anymore. (so no need for COMPSPEC trick to call another copy of command com) ! Some other smaller fixes. ! Fixed rdd_ads in make_*_all.bats. * Removed the simple common part for BC/VC to consistently separate the BC/VC make file system. The only common part now is common.mak in each contrib. (Marek I hope you don't mind, I promise to update them in case of changes. We have quite some reduancy between BC/VC anyway, so this won't hurt much overall, but they are now nicely separated and maybe bit easier to oversee for someone new to the project. ! Avoiding 'exit' command, as it stops all batch file execution, and as a bad side-effect can force to exit shells too. - CFLAGS, CLIBFLAGS, HARBOURFLAGS not advertised anymore as official public vars to set compiler flags. C_USR, PRG_USR should be used, which are also GNU make system compatible. ! Fixed copyrights. ! Tabs converted to spaces. --- harbour/ChangeLog | 37 +++++++ harbour/contrib/make_b32.bat | 4 +- harbour/contrib/make_b32_all.bat | 15 ++- harbour/contrib/make_vc.bat | 4 +- harbour/contrib/make_vc_all.bat | 15 ++- harbour/contrib/mtpl_b32.bat | 40 +++---- harbour/contrib/mtpl_b32.mak | 179 ++++++++++++++++++++----------- harbour/contrib/mtpl_defs.mak | 73 ------------- harbour/contrib/mtpl_vc.bat | 40 +++---- harbour/contrib/mtpl_vc.mak | 175 +++++++++++++++++++----------- harbour/make_b32.bat | 3 +- harbour/make_vc.bat | 3 +- harbour/make_vcce.bat | 5 +- harbour/utils/hbmake/hbmake.prg | 2 +- 14 files changed, 324 insertions(+), 271 deletions(-) delete mode 100644 harbour/contrib/mtpl_defs.mak diff --git a/harbour/ChangeLog b/harbour/ChangeLog index cbb4694f25..a1e765c8a6 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,43 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-11-23 04:59 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * make_b32.bat + * make_vc.bat + * make_vcce.bat + + Accepts "Install" and "Clean" consistently. + ! Not directly modifying C_USR, instead use CFLAGS internally. + + * contrib/make_b32_all.bat + * contrib/make_vc_all.bat + * contrib/make_b32.bat + * contrib/make_vc.bat + * contrib/mtpl_b32.bat + * contrib/mtpl_vc.bat + * contrib/mtpl_b32.mak + * contrib/mtpl_vc.mak + - contrib/mtpl_defs.mak + % Removed COPYCMD requirement. + ! Not modifying any user level envvars anymore. + (so no need for COMPSPEC trick to call another copy of command com) + ! Some other smaller fixes. + ! Fixed rdd_ads in make_*_all.bats. + * Removed the simple common part for BC/VC to consistently + separate the BC/VC make file system. The only common + part now is common.mak in each contrib. (Marek I hope you don't + mind, I promise to update them in case of changes. We have quite + some reduancy between BC/VC anyway, so this won't hurt much overall, + but they are now nicely separated and maybe bit easier to oversee + for someone new to the project. + ! Avoiding 'exit' command, as it stops all batch file + execution, and as a bad side-effect can force to exit + shells too. + - CFLAGS, CLIBFLAGS, HARBOURFLAGS not advertised anymore as + official public vars to set compiler flags. + C_USR, PRG_USR should be used, which are also GNU make system compatible. + ! Fixed copyrights. + ! Tabs converted to spaces. + 2007-11-23 03:20 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * contrib/apollo/make_b32.bat * contrib/apollo/make_vc.bat diff --git a/harbour/contrib/make_b32.bat b/harbour/contrib/make_b32.bat index 62713e2621..6d1d640e52 100644 --- a/harbour/contrib/make_b32.bat +++ b/harbour/contrib/make_b32.bat @@ -5,7 +5,7 @@ rem if "%1" == "" goto ERROR -echo Entering %1 ... +echo Entering: %1 cd %1 call make_b32.bat %2 %3 %4 %5 %6 %7 %8 %9 @@ -15,7 +15,7 @@ goto EXIT :ERROR echo ---------------------------------------- -echo RUN : make_b32.bat DIRNAME !!! +echo Usage: make_b32.bat echo ---------------------------------------- :EXIT diff --git a/harbour/contrib/make_b32_all.bat b/harbour/contrib/make_b32_all.bat index 99d8aa41af..742fd3c230 100644 --- a/harbour/contrib/make_b32_all.bat +++ b/harbour/contrib/make_b32_all.bat @@ -4,19 +4,17 @@ rem $Id$ rem rem The compilation is done in three steps. PLEASE DO NOT MODIFY -rem IT or you will break Win98 command.com line length limit !!! +rem IT or you will break Win9x command.com line length limit !!! set HB_SHOW_ERRORS=no set DO_NOT_COMPILE=examples hbclip hgf msql set DIRS=adordd bmdbfcdx btree libct libgt libmisc libnf ole +for %%n in ( %DIRS% ) do call make_b32.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 -FOR %%n IN ( %DIRS% ) DO %COMSPEC% /c make_b32.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 - -set DIRS=hbzlib htmllib odbc rdd_ads telepath tip win32 xhb - -FOR %%n IN ( %DIRS% ) DO %COMSPEC% /c make_b32.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 +set DIRS=hbzlib htmllib odbc telepath tip win32 xhb +for %%n in ( %DIRS% ) do call make_b32.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 set DIRS=samples directx if not "%APOLLO_DIR%" == "" set DIRS=%DIRS% apollo @@ -26,6 +24,5 @@ if not "%GD_DIR%" == "" set DIRS=%DIRS% gd if not "%MYSQL_DIR%" == "" set DIRS=%DIRS% mysql if not "%PDFLIB_DIR%" == "" set DIRS=%DIRS% pdflib if not "%PGSQL_DIR%" == "" set DIRS=%DIRS% pgsql - -FOR %%n IN ( %DIRS% ) DO %COMSPEC% /c make_b32.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 - +if not "%ADS_DIR%" == "" set DIRS=%DIRS% rdd_ads +for %%n in ( %DIRS% ) do call make_b32.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/harbour/contrib/make_vc.bat b/harbour/contrib/make_vc.bat index bc691b32b2..6fed4aac6b 100644 --- a/harbour/contrib/make_vc.bat +++ b/harbour/contrib/make_vc.bat @@ -5,7 +5,7 @@ rem if "%1" == "" goto ERROR -echo Entering %1 ... +echo Entering: %1 cd %1 call make_vc.bat %2 %3 %4 %5 %6 %7 %8 %9 @@ -15,7 +15,7 @@ goto EXIT :ERROR echo ---------------------------------------- -echo RUN : make_vc.bat DIRNAME !!! +echo Usage: make_vc.bat echo ---------------------------------------- :EXIT diff --git a/harbour/contrib/make_vc_all.bat b/harbour/contrib/make_vc_all.bat index 388baedabd..7814166989 100644 --- a/harbour/contrib/make_vc_all.bat +++ b/harbour/contrib/make_vc_all.bat @@ -4,19 +4,17 @@ rem $Id$ rem rem The compilation is done in three steps. PLEASE DO NOT MODIFY -rem IT or you will break Win98 command.com line length limit !!! +rem IT or you will break Win9x command.com line length limit !!! set HB_SHOW_ERRORS=no set DO_NOT_COMPILE=examples hbclip hgf msql set DIRS=adordd bmdbfcdx btree libct libgt libmisc libnf ole +for %%n in ( %DIRS% ) do call make_vc.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 -FOR %%n IN ( %DIRS% ) DO %COMSPEC% /c make_vc.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 - -set DIRS=hbzlib htmllib odbc rdd_ads telepath tip win32 xhb - -FOR %%n IN ( %DIRS% ) DO %COMSPEC% /c make_vc.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 +set DIRS=hbzlib htmllib odbc telepath tip win32 xhb +for %%n in ( %DIRS% ) do call make_vc.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 set DIRS=samples directx if not "%APOLLO_DIR%" == "" set DIRS=%DIRS% apollo @@ -26,6 +24,5 @@ if not "%GD_DIR%" == "" set DIRS=%DIRS% gd if not "%MYSQL_DIR%" == "" set DIRS=%DIRS% mysql if not "%PDFLIB_DIR%" == "" set DIRS=%DIRS% pdflib if not "%PGSQL_DIR%" == "" set DIRS=%DIRS% pgsql - -FOR %%n IN ( %DIRS% ) DO %COMSPEC% /c make_vc.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 - +if not "%ADS_DIR%" == "" set DIRS=%DIRS% rdd_ads +for %%n in ( %DIRS% ) do call make_vc.bat %%n %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/harbour/contrib/mtpl_b32.bat b/harbour/contrib/mtpl_b32.bat index 1b37b7b1ce..57728fd28d 100644 --- a/harbour/contrib/mtpl_b32.bat +++ b/harbour/contrib/mtpl_b32.bat @@ -15,54 +15,46 @@ rem set HB_MAKE_PROGRAM= rem set HB_MAKE_FLAGS= rem --------------------------------------------------------------- -if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32 -if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe -if "%HB_SHOW_ERRORS%" == "" set HB_SHOW_ERRORS=yes -set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak +set _HB_CC_NAME=%HB_CC_NAME% +set _HB_MAKE_PROGRAM=%HB_MAKE_PROGRAM% +set _HB_SHOW_ERRORS=%HB_SHOW_ERRORS% -rem --------------------------------------------------------------- - -rem Save the user value, force silent file overwrite with COPY -rem (not all Windows versions support the COPY /Y flag) -set HB_ORGENV_COPYCMD=%COPYCMD% -set COPYCMD=/Y +if "%_HB_CC_NAME%" == "" set _HB_CC_NAME=b32 +if "%_HB_MAKE_PROGRAM%" == "" set _HB_MAKE_PROGRAM=make.exe +if "%_HB_SHOW_ERRORS%" == "" set _HB_SHOW_ERRORS=yes +set HB_MAKEFILE=..\mtpl_%_HB_CC_NAME%.mak +set HB_EXIT_LEVEL= rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN +if "%1" == "Clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN if "%1" == "install" goto INSTALL +if "%1" == "Install" goto INSTALL if "%1" == "INSTALL" goto INSTALL :BUILD - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -N -r -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log - if errorlevel 1 if "%HB_SHOW_ERRORS%" == "yes" notepad make_%HB_CC_NAME%.log + %_HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%_HB_CC_NAME%.log if errorlevel 1 set HB_EXIT_LEVEL=1 + if errorlevel 1 if "%_HB_SHOW_ERRORS%" == "yes" notepad make_%_HB_CC_NAME%.log goto EXIT :CLEAN - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -N -r -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + %_HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%_HB_CC_NAME%.log if errorlevel 1 set HB_EXIT_LEVEL=1 if errorlevel 1 goto EXIT - if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul - if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + if exist make_%_HB_CC_NAME%.log del make_%_HB_CC_NAME%.log > nul + if exist inst_%_HB_CC_NAME%.log del inst_%_HB_CC_NAME%.log > nul goto EXIT :INSTALL - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -N -r -f %HB_MAKEFILE% INSTALL > nul + %_HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul if errorlevel 1 set HB_EXIT_LEVEL=1 - if errorlevel 1 goto EXIT goto EXIT :EXIT - -rem --------------------------------------------------------------- - -rem Restore user value -set COPYCMD=%HB_ORGENV_COPYCMD% - -if "%HB_EXIT_LEVEL%" == "1" exit 1 diff --git a/harbour/contrib/mtpl_b32.mak b/harbour/contrib/mtpl_b32.mak index d27f957a61..3c17ab9b96 100644 --- a/harbour/contrib/mtpl_b32.mak +++ b/harbour/contrib/mtpl_b32.mak @@ -8,23 +8,16 @@ # -------------------------------------------------------- # --------------------------------------------------------------- -# Copyright 1999-2001 Viktor Szakats +# Copyright 2007 Marek Paliwoda (mpaliwoda "at" interia "dot" pl) # See doc/license.txt for licensing terms. # --------------------------------------------------------------- -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) +# NOTE: You can use these optional envvars to configure the make process: +# +# C_USR - Extra C compiler options for libraries +# PRG_USR - Extra Harbour compiler options # -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) -#.KEEP .AUTODEPEND .SUFFIXES: @@ -34,7 +27,63 @@ HB_ROOT = ..\.. !endif -!include $(HB_ROOT)\contrib\mtpl_defs.mak +#********************************************************** + +!ifndef ECHO +ECHO = echo +!endif +!ifndef DEL +DEL = del +!endif + +#********************************************************** +# binary file suffixes and prefixes +#********************************************************** + +!ifndef OBJEXT +OBJEXT = .obj +!endif +!ifndef LIBEXT +LIBEXT = .lib +!endif + +#********************************************************** + +.SUFFIXES: $(LIBEXT) $(OBJEXT) .prg .c .cpp .asm + +#********************************************************** +# Install directory defaults. +#********************************************************** + +!ifndef HB_INSTALL_PREFIX +HB_INSTALL_PREFIX = $(HB_ROOT) +!endif + +!ifndef HB_BIN_INSTALL +HB_BIN_INSTALL = $(HB_INSTALL_PREFIX)\bin +!endif +!ifndef HB_INC_INSTALL +HB_INC_INSTALL = $(HB_INSTALL_PREFIX)\include +!endif +!ifndef HB_LIB_INSTALL +HB_LIB_INSTALL = $(HB_INSTALL_PREFIX)\lib +!endif + +#********************************************************** +# Directory macros. These should never have to change. +#********************************************************** + +OBJ_DIR = $(HB_ROOT)\obj\b32 +LIB_DIR = $(HB_ROOT)\lib\b32 +BIN_DIR = $(HB_ROOT)\bin\b32 + +INCLUDE_DIR = $(HB_ROOT)\include + +#********************************************************** +# Macros to access Harbour executable and other goodies +#********************************************************** + +HARBOUR_EXE = $(BIN_DIR)\harbour.exe #********************************************************** # C compiler definition and C flags. These should never have to change. @@ -50,11 +99,11 @@ MKLIB = tlib.exe CFLAGS = -O2 $(CFLAGS) !endif -CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) +CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) CLIBFLAGSDEBUG = -v $(CLIBFLAGS) HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) +LDFLAGS = $(LDFLAGS) # This is needed, otherwise the libs may overflow when # debug info is requested with -v -y @@ -71,22 +120,20 @@ $(OBJ_DIR);\ #********************************************************** # General *.c --> *.obj COMPILE rule for STATIC Libraries {$(ALL_LIB_SRC_DIRS)}.c{$(OBJ_DIR)}$(OBJEXT): - echo $(CC) $(CLIBFLAGS) -o$@ $< - $(CC) $(CLIBFLAGS) -o$@ $< + $(CC) $(CLIBFLAGS) -o$@ $< #********************************************************** # General *.cpp --> *.obj COMPILE rule for STATIC Libraries {$(ALL_LIB_SRC_DIRS)}.cpp{$(OBJ_DIR)}$(OBJEXT): - echo $(CC) $(CLIBFLAGS) -o$@ $< - $(CC) $(CLIBFLAGS) -o$@ $< + $(CC) $(CLIBFLAGS) -o$@ $< #********************************************************** # General *.prg --> *.obj COMPILE rule for STATIC Libraries {$(ALL_LIB_SRC_DIRS)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT): - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $** - $(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)\$&.c + $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $** + $(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)\$&.c #********************************************************** # General Library BUILD rule - does not work #{$(OBJ_DIR)}.obj{$(LIB_DIR)}.lib: -# IF EXIST "$@" $(DEL) "$@" > NUL +# if exist "$@" $(DEL) "$@" > NUL # $(MKLIB) "$@" $(ARFLAGS) @&&! #+$(**: = &^ #+) @@ -99,8 +146,8 @@ ALL_HEADERS = $(PRG_HEADERS) $(C_HEADERS) #********************************************************** $(LIB_PATH) : $(LIB_OBJS) - IF EXIST "$(LIB_PATH)" $(DEL) "$(LIB_PATH)" > NUL - $(MKLIB) "$(LIB_PATH)" $(ARFLAGS) @&&! + if exist "$(LIB_PATH)" $(DEL) "$(LIB_PATH)" > NUL + $(MKLIB) "$(LIB_PATH)" $(ARFLAGS) @&&! +$(**: = &^ +) ! @@ -113,34 +160,33 @@ Clean: doClean CLEAN: doClean doClean: - @if exist $(LIB_PATH) $(DEL) $(LIB_PATH) > nul - @$(ECHO) @echo off > delone.bat - @$(ECHO) set >>setenv >> delone.bat - @$(ECHO) if """%%1""" == """""" goto skip >> delone.bat - @$(ECHO) if exist %%1.c $(DEL) %%1.c >> delone.bat - @$(ECHO) if exist %%1.obj $(DEL) %%1.obj >> delone.bat - @$(ECHO) :skip >> delone.bat - @type &&! -@%%COMSPEC%% /c delone.bat $(LIB_OBJS:.obj=^ -@%%COMSPEC%% /c delone.bat ) -! > delall.bat - @if exist delall.bat $(DEL) delall.bat > nul - @if exist delone.bat $(DEL) delone.bat > nul - @if exist delall.bat $(DEL) delall.bat > nul + @if exist $(LIB_PATH) $(DEL) $(LIB_PATH) > nul + @$(ECHO) @echo off > _hbdeloo.bat + @$(ECHO) if "%1" == "" goto SKIP >> _hbdeloo.bat + @$(ECHO) if exist %1.c $(DEL) %1.c >> _hbdeloo.bat + @$(ECHO) if exist %1.obj $(DEL) %1.obj >> _hbdeloo.bat + @$(ECHO) :SKIP >> _hbdeloo.bat + @type &&! +@call _hbdeloo.bat $(LIB_OBJS:.obj=^ +@call _hbdeloo.bat ) +! > _hbdeloa.bat + @_hbdeloa.bat + @if exist _hbdeloa.bat $(DEL) _hbdeloa.bat > nul + @if exist _hbdeloo.bat $(DEL) _hbdeloo.bat > nul !if "$(HB_INSTALL_PREFIX)" == "$(HB_ROOT)" - @if exist $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) $(DEL) $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) > nul - @$(ECHO) @echo off > delone.bat - @$(ECHO) if """%%1""" == """""" goto skip >> delone.bat - @$(ECHO) if exist $(HB_INC_INSTALL)\%%1 $(DEL) $(HB_INC_INSTALL)\%%1 >> delone.bat - @$(ECHO) :skip >> delone.bat - @type &&! -@%%COMSPEC%% /c delone.bat $(ALL_HEADERS: =^ -@%%COMSPEC%% /c delone.bat ) -! > delall.bat - @if exist delall.bat $(DEL) delall.bat > nul - @if exist delone.bat $(DEL) delone.bat > nul - @if exist delall.bat $(DEL) delall.bat > nul + @if exist $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) $(DEL) $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) > nul + @$(ECHO) @echo off > _hbdelho.bat + @$(ECHO) if "%1" == "" goto SKIP >> _hbdelho.bat + @$(ECHO) if exist $(HB_INC_INSTALL)\%1 $(DEL) $(HB_INC_INSTALL)\%1 >> _hbdelho.bat + @$(ECHO) :SKIP >> _hbdelho.bat + @type &&! +@call _hbdelho.bat $(ALL_HEADERS: =^ +@call _hbdelho.bat ) +! > _hbdelha.bat + @_hbdelha.bat + @if exist _hbdelha.bat $(DEL) _hbdelha.bat > nul + @if exist _hbdelho.bat $(DEL) _hbdelho.bat > nul !endif #********************************************************** @@ -152,17 +198,26 @@ Install: doInstall INSTALL: doInstall doInstall: - @if exist $(LIB_PATH) copy $(LIB_PATH) $(HB_LIB_INSTALL) > nul - @$(ECHO) @echo off > cpyone.bat - @$(ECHO) if """%%1""" == """""" goto skip >> cpyone.bat - @$(ECHO) if exist %%1 copy %%1 $(HB_INC_INSTALL) >> cpyone.bat - @$(ECHO) :skip >> cpyone.bat - @< nul - @if exist cpyone.bat $(DEL) cpyone.bat > nul - @if exist cpyall.bat $(DEL) cpyall.bat > nul + @type &&! +@echo off +if not exist $(LIB_PATH) goto SKIP +if exist $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) $(DEL) $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) > nul +copy $(LIB_PATH) $(HB_LIB_INSTALL) > nul +:SKIP +! > _hbcpyla.bat + @_hbcpyla.bat + @if exist _hbcpyla.bat $(DEL) _hbcpyla.bat > nul + @$(ECHO) @echo off > _hbcpyho.bat + @$(ECHO) if "%1" == "" goto SKIP >> _hbcpyho.bat + @$(ECHO) if exist $(HB_INC_INSTALL)\%1 $(DEL) $(HB_INC_INSTALL)\%1 >> _hbcpyho.bat + @$(ECHO) if exist %1 copy %1 $(HB_INC_INSTALL) >> _hbcpyho.bat + @$(ECHO) :SKIP >> _hbcpyho.bat + @type &&! +@call _hbcpyho.bat $(ALL_HEADERS: =^ +@call _hbcpyho.bat ) +! > _hbcpyha.bat + @_hbcpyha.bat + @if exist _hbcpyha.bat $(DEL) _hbcpyha.bat > nul + @if exist _hbcpyho.bat $(DEL) _hbcpyho.bat > nul #********************************************************** diff --git a/harbour/contrib/mtpl_defs.mak b/harbour/contrib/mtpl_defs.mak deleted file mode 100644 index 327d697679..0000000000 --- a/harbour/contrib/mtpl_defs.mak +++ /dev/null @@ -1,73 +0,0 @@ -# -# $Id$ -# - -# -------------------------------------------------------- -# Makefile common section for Harbour Project Contrib libs -# for Microsoft Visual C/Borland C/C++ - definitions -# ----------------------------------------------------------------- - -# --------------------------------------------------------------- -# Copyright 1999-2001 Viktor Szakats -# See doc/license.txt for licensing terms. -# --------------------------------------------------------------- - -#********************************************************** - -!ifndef ECHO -ECHO = echo -!endif -!ifndef DEL -DEL = del -!endif - -#********************************************************** -# binary file suffixes and prefixes -#********************************************************** - -!ifndef OBJEXT -OBJEXT = .obj -!endif -!ifndef LIBEXT -LIBEXT = .lib -!endif - -#********************************************************** - -.SUFFIXES: $(LIBEXT) $(OBJEXT) .prg .c .cpp .asm - -#********************************************************** -# Install directory defaults. -#********************************************************** - -!ifndef HB_INSTALL_PREFIX -HB_INSTALL_PREFIX = $(HB_ROOT) -!endif - -!ifndef HB_BIN_INSTALL -HB_BIN_INSTALL = $(HB_INSTALL_PREFIX)\bin -!endif -!ifndef HB_INC_INSTALL -HB_INC_INSTALL = $(HB_INSTALL_PREFIX)\include -!endif -!ifndef HB_LIB_INSTALL -HB_LIB_INSTALL = $(HB_INSTALL_PREFIX)\lib -!endif - -#********************************************************** -# Directory macros. These should never have to change. -#********************************************************** - -OBJ_DIR = $(HB_ROOT)\obj\$(HB_CC_NAME) -LIB_DIR = $(HB_ROOT)\lib\$(HB_CC_NAME) -BIN_DIR = $(HB_ROOT)\bin\$(HB_CC_NAME) - -INCLUDE_DIR = $(HB_ROOT)\include - -#********************************************************** -# Macros to access Harbour executable and other goodies -#********************************************************** - -HARBOUR_EXE = $(BIN_DIR)\harbour.exe - -#********************************************************** diff --git a/harbour/contrib/mtpl_vc.bat b/harbour/contrib/mtpl_vc.bat index 9726764a17..b1210f2998 100644 --- a/harbour/contrib/mtpl_vc.bat +++ b/harbour/contrib/mtpl_vc.bat @@ -15,54 +15,46 @@ rem set HB_MAKE_PROGRAM= rem set HB_MAKE_FLAGS= rem --------------------------------------------------------------- -if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc -if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe -if "%HB_SHOW_ERRORS%" == "" set HB_SHOW_ERRORS=yes -set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak +set _HB_CC_NAME=%HB_CC_NAME% +set _HB_MAKE_PROGRAM=%HB_MAKE_PROGRAM% +set _HB_SHOW_ERRORS=%HB_SHOW_ERRORS% -rem --------------------------------------------------------------- - -rem Save the user value, force silent file overwrite with COPY -rem (not all Windows versions support the COPY /Y flag) -set HB_ORGENV_COPYCMD=%COPYCMD% -set COPYCMD=/Y +if "%_HB_CC_NAME%" == "" set _HB_CC_NAME=vc +if "%_HB_MAKE_PROGRAM%" == "" set _HB_MAKE_PROGRAM=nmake.exe +if "%_HB_SHOW_ERRORS%" == "" set _HB_SHOW_ERRORS=yes +set HB_MAKEFILE=..\mtpl_%_HB_CC_NAME%.mak +set HB_EXIT_LEVEL= rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN +if "%1" == "Clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN if "%1" == "install" goto INSTALL +if "%1" == "Install" goto INSTALL if "%1" == "INSTALL" goto INSTALL :BUILD - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log - if errorlevel 1 if "%HB_SHOW_ERRORS%" == "yes" notepad make_%HB_CC_NAME%.log + %_HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%_HB_CC_NAME%.log if errorlevel 1 set HB_EXIT_LEVEL=1 + if errorlevel 1 if "%_HB_SHOW_ERRORS%" == "yes" notepad make_%_HB_CC_NAME%.log goto EXIT :CLEAN - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log + %_HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%_HB_CC_NAME%.log if errorlevel 1 set HB_EXIT_LEVEL=1 if errorlevel 1 goto EXIT - if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul - if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul + if exist make_%_HB_CC_NAME%.log del make_%_HB_CC_NAME%.log > nul + if exist inst_%_HB_CC_NAME%.log del inst_%_HB_CC_NAME%.log > nul goto EXIT :INSTALL - %HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul + %_HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul if errorlevel 1 set HB_EXIT_LEVEL=1 - if errorlevel 1 goto EXIT goto EXIT :EXIT - -rem --------------------------------------------------------------- - -rem Restore user value -set COPYCMD=%HB_ORGENV_COPYCMD% - -if "%HB_EXIT_LEVEL%" == "1" exit 1 diff --git a/harbour/contrib/mtpl_vc.mak b/harbour/contrib/mtpl_vc.mak index 9dcbca0be6..fa271b1610 100644 --- a/harbour/contrib/mtpl_vc.mak +++ b/harbour/contrib/mtpl_vc.mak @@ -8,26 +8,15 @@ # -------------------------------------------------------- # --------------------------------------------------------------- -# Copyright 1999-2001 Viktor Szakats +# Copyright 2007 Marek Paliwoda (mpaliwoda "at" interia "dot" pl) # See doc/license.txt for licensing terms. # --------------------------------------------------------------- -# NOTE: You can use these envvars to configure the make process: -# (note that these are all optional) +# NOTE: You can use these optional envvars to configure the make process: +# +# C_USR - Extra C compiler options for libraries +# PRG_USR - Extra Harbour compiler options # -# CFLAGS - Extra C compiler options for libraries and for -# executables -# C_USR - Extra C compiler options for libraries and for -# executables (GNU make compatible envvar) -# CLIBFLAGS - Extra C compiler options for the libraries -# HARBOURFLAGS - Extra Harbour compiler options -# PRG_USR - Extra Harbour compiler options -# (GNU make compatible envvar) - -# Visual C++ version -!ifndef HB_VISUALC_VER -HB_VISUALC_VER = 60 -!endif #********************************************************** @@ -35,7 +24,63 @@ HB_VISUALC_VER = 60 HB_ROOT = ..\.. !endif -!include $(HB_ROOT)\contrib\mtpl_defs.mak +#********************************************************** + +!ifndef ECHO +ECHO = echo +!endif +!ifndef DEL +DEL = del +!endif + +#********************************************************** +# binary file suffixes and prefixes +#********************************************************** + +!ifndef OBJEXT +OBJEXT = .obj +!endif +!ifndef LIBEXT +LIBEXT = .lib +!endif + +#********************************************************** + +.SUFFIXES: $(LIBEXT) $(OBJEXT) .prg .c .cpp .asm + +#********************************************************** +# Install directory defaults. +#********************************************************** + +!ifndef HB_INSTALL_PREFIX +HB_INSTALL_PREFIX = $(HB_ROOT) +!endif + +!ifndef HB_BIN_INSTALL +HB_BIN_INSTALL = $(HB_INSTALL_PREFIX)\bin +!endif +!ifndef HB_INC_INSTALL +HB_INC_INSTALL = $(HB_INSTALL_PREFIX)\include +!endif +!ifndef HB_LIB_INSTALL +HB_LIB_INSTALL = $(HB_INSTALL_PREFIX)\lib +!endif + +#********************************************************** +# Directory macros. These should never have to change. +#********************************************************** + +OBJ_DIR = $(HB_ROOT)\obj\vc +LIB_DIR = $(HB_ROOT)\lib\vc +BIN_DIR = $(HB_ROOT)\bin\vc + +INCLUDE_DIR = $(HB_ROOT)\include + +#********************************************************** +# Macros to access Harbour executable and other goodies +#********************************************************** + +HARBOUR_EXE = $(BIN_DIR)\harbour.exe #********************************************************** # C compiler definition and C flags. These should never have to change. @@ -47,11 +92,11 @@ MKLIB = lib.exe #********************************************************** -CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) +CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS) CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS) HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) -LDFLAGS = $(LDFLAGS) +LDFLAGS = $(LDFLAGS) #********************************************************** # COMPILE Rules @@ -60,20 +105,20 @@ LDFLAGS = $(LDFLAGS) #********************************************************** # General *.c --> *.obj COMPILE rule for STATIC Libraries {.}.c{$(OBJ_DIR)}$(OBJEXT):: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< + $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< #********************************************************** # General *.cpp --> *.obj COMPILE rule for STATIC Libraries {.}.cpp{$(OBJ_DIR)}$(OBJEXT):: - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< + $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $< #********************************************************** # General *.prg --> *.obj COMPILE rule for STATIC Libraries {.}.prg{$(OBJ_DIR)}$(OBJEXT): - $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< - $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c + $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $< + $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c #********************************************************** # General Library BUILD rule - does not work #{$(OBJ_DIR)}$(OBJEXT){$(LIB_PATH)}.lib: -# IF EXIST "$@" $(DEL) "$@" > nul +# if exist "$@" $(DEL) "$@" > nul # $(MKLIB) /out:$@ @<< #$** #<<$(KEEPSTATE) @@ -85,8 +130,8 @@ ALL_HEADERS = $(PRG_HEADERS) $(C_HEADERS) #********************************************************** $(LIB_PATH) : $(LIB_OBJS) - IF EXIST "$@" $(DEL) "$@" > nul - $(MKLIB) /out:$@ @<< + if exist "$@" $(DEL) "$@" > nul + $(MKLIB) /out:$@ @<< $** <<$(KEEPSTATE) #********************************************************** @@ -98,34 +143,33 @@ Clean: doClean CLEAN: doClean doClean: - @if exist $(LIB_PATH) $(DEL) $(LIB_PATH) > nul - @$(ECHO) @echo off > delone.bat - @$(ECHO) set >>setenv >> delone.bat - @$(ECHO) if """%%1""" == """""" goto skip >> delone.bat - @$(ECHO) if exist %%1.c $(DEL) %%1.c >> delone.bat - @$(ECHO) if exist %%1.obj $(DEL) %%1.obj >> delone.bat - @$(ECHO) :skip >> delone.bat - @< nul + @$(ECHO) @echo off > _hbdeloo.bat + @$(ECHO) if "%1" == "" goto SKIP >> _hbdeloo.bat + @$(ECHO) if exist %1.c $(DEL) %1.c >> _hbdeloo.bat + @$(ECHO) if exist %1.obj $(DEL) %1.obj >> _hbdeloo.bat + @$(ECHO) :SKIP >> _hbdeloo.bat + <<_hbdeloa.bat +@call _hbdeloo.bat $(LIB_OBJS:.obj=^ +@call _hbdeloo.bat ) < nul - @if exist delone.bat $(DEL) delone.bat > nul - @if exist delall.bat $(DEL) delall.bat > nul + @_hbdeloa.bat + @if exist _hbdeloa.bat $(DEL) _hbdeloa.bat > nul + @if exist _hbdeloo.bat $(DEL) _hbdeloo.bat > nul !if "$(HB_INSTALL_PREFIX)" == "$(HB_ROOT)" - @if exist $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) $(DEL) $(HB_LIB_INSTALL)\$(LIBNAME)$(LIBEXT) > nul - @$(ECHO) @echo off > delone.bat - @$(ECHO) if """%%1""" == """""" goto skip >> delone.bat - @$(ECHO) if exist $(HB_INC_INSTALL)\%%1 $(DEL) $(HB_INC_INSTALL)\%%1 >> delone.bat - @$(ECHO) :skip >> delone.bat - @< nul + @$(ECHO) @echo off > _hbdelho.bat + @$(ECHO) if "%1" == "" goto SKIP >> _hbdelho.bat + @$(ECHO) if exist $(HB_INC_INSTALL)\%1 $(DEL) $(HB_INC_INSTALL)\%1 >> _hbdelho.bat + @$(ECHO) :SKIP >> _hbdelho.bat + <<_hbdelha.bat +@call _hbdelho.bat $(ALL_HEADERS: =^ +@call _hbdelho.bat ) < nul - @if exist delone.bat $(DEL) delone.bat > nul - @if exist delall.bat $(DEL) delall.bat > nul + @_hbdelha.bat + @if exist _hbdelha.bat $(DEL) _hbdelha.bat > nul + @if exist _hbdelho.bat $(DEL) _hbdelho.bat > nul !endif #********************************************************** @@ -137,17 +181,26 @@ Install: doInstall INSTALL: doInstall doInstall: - @if exist $(LIB_PATH) copy $(LIB_PATH) $(HB_LIB_INSTALL) > nul - @$(ECHO) @echo off > cpyone.bat - @$(ECHO) if """%%1""" == """""" goto skip >> cpyone.bat - @$(ECHO) if exist %%1 copy %%1 $(HB_INC_INSTALL) >> cpyone.bat - @$(ECHO) :skip >> cpyone.bat - @< nul +copy $(LIB_PATH) $(HB_LIB_INSTALL) > nul +:SKIP < nul - @if exist cpyone.bat $(DEL) cpyone.bat > nul - @if exist cpyall.bat $(DEL) cpyall.bat > nul + @_hbcpyla.bat + @if exist _hbcpyla.bat $(DEL) _hbcpyla.bat > nul + @$(ECHO) @echo off > _hbcpyho.bat + @$(ECHO) if "%1" == "" goto SKIP >> _hbcpyho.bat + @$(ECHO) if exist $(HB_INC_INSTALL)\%1 $(DEL) $(HB_INC_INSTALL)\%1 >> _hbcpyho.bat + @$(ECHO) if exist %1 copy %1 $(HB_INC_INSTALL) >> _hbcpyho.bat + @$(ECHO) :SKIP >> _hbcpyho.bat + <<_hbcpyha.bat +@call _hbcpyho.bat $(ALL_HEADERS: =^ +@call _hbcpyho.bat ) +< nul + @if exist _hbcpyho.bat $(DEL) _hbcpyho.bat > nul #********************************************************** diff --git a/harbour/make_b32.bat b/harbour/make_b32.bat index 8813664926..3a99160f77 100644 --- a/harbour/make_b32.bat +++ b/harbour/make_b32.bat @@ -37,9 +37,10 @@ set COPYCMD=/Y rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN +if "%1" == "Clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN - if "%1" == "install" goto INSTALL +if "%1" == "Install" goto INSTALL if "%1" == "INSTALL" goto INSTALL :BUILD diff --git a/harbour/make_vc.bat b/harbour/make_vc.bat index a17a94a34f..4e3a548ecf 100644 --- a/harbour/make_vc.bat +++ b/harbour/make_vc.bat @@ -37,9 +37,10 @@ set COPYCMD=/Y rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN +if "%1" == "Clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN - if "%1" == "install" goto INSTALL +if "%1" == "Install" goto INSTALL if "%1" == "INSTALL" goto INSTALL :BUILD diff --git a/harbour/make_vcce.bat b/harbour/make_vcce.bat index 1293bf44fe..ff00a8275e 100644 --- a/harbour/make_vcce.bat +++ b/harbour/make_vcce.bat @@ -28,7 +28,7 @@ if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe if "%HB_SHOW_ERRORS%" == "" set HB_SHOW_ERRORS=yes set HB_MAKEFILE=make_%HB_CC_NAME%.mak -set C_USR=%C_USR% -DHB_NO_WIN_CONSOLE +set CFLAGS=%C_USR% -DHB_NO_WIN_CONSOLE rem --------------------------------------------------------------- @@ -40,9 +40,10 @@ set COPYCMD=/Y rem --------------------------------------------------------------- if "%1" == "clean" goto CLEAN +if "%1" == "Clean" goto CLEAN if "%1" == "CLEAN" goto CLEAN - if "%1" == "install" goto INSTALL +if "%1" == "Install" goto INSTALL if "%1" == "INSTALL" goto INSTALL :BUILD diff --git a/harbour/utils/hbmake/hbmake.prg b/harbour/utils/hbmake/hbmake.prg index 9fc7c720ce..6391868891 100644 --- a/harbour/utils/hbmake/hbmake.prg +++ b/harbour/utils/hbmake/hbmake.prg @@ -5500,7 +5500,7 @@ LOCAL aLang := Array( 67 ) aLang[24] := " /l[LANGID] Specify the language to be used on hbmake" aLang[25] := " LANGID= (EN/PT/ES). On Windows, the default will be the S.O." aLang[26] := " language. On OS/2, FreeBSD and LINUX will be English." - aLang[27] := "Enviroment options" + aLang[27] := "Environment options" aLang[28] := "Select the OS" aLang[29] := "Select the C Compiler" aLang[30] := "Graph Lib"