* common.mak
* harbour-wce-spec
* harbour-win-spec
* harbour.spec
* make_b32.bat
* make_b32.mak
* make_gcc.mak
* make_gcc.sh
* make_gnu.bat
* make_gnu.sh
* make_gnu_os2.cmd
* make_gnu_xmingw.sh
* make_gnu_xmingwce.sh
* make_vc.bat
* make_vc.mak
* mpkg_tgz.sh
* bin/hb-func.sh
* bin/hb-mkslib.sh
* bin/hbmk.bat
* bin/hbmk_os2.cmd
* bin/postinst.sh
* config/bin.cf
* config/bsd/gcc.cf
* config/darwin/gcc.cf
* config/dos/bcc16.cf
* config/dos/djgpp.cf
* config/dos/owatcom.cf
* config/dos/rsx32.cf
* config/hpux/gcc.cf
* config/lib.cf
* config/linux/gcc.cf
* config/linux/owatcom.cf
* config/os2/gcc.cf
* config/os2/icc.cf
* config/rules.cf
* config/sunos/gcc.cf
* config/win/bcc32.cf
* config/win/dm.cf
* config/win/gcc.cf
* config/win/icc.cf
* config/win/mingw.cf
* config/win/mingwce.cf
* config/win/msvc.cf
* config/win/msvcce.cf
* config/win/owatcom.cf
* config/win/pocc.cf
* config/win/pocc64.cf
* config/win/poccce.cf
* config/win/rsxnt.cf
* config/win/xcc.cf
* contrib/gtalleg/Makefile
* contrib/hbapollo/Makefile
* contrib/hbcurl/Makefile
* contrib/hbfbird/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbgd/tests/hbmk_b32.bat
* contrib/hbgd/tests/hbmk_vc.bat
* contrib/hbgf/hbgfgtk/Makefile
* contrib/hbhpdf/Makefile
* contrib/hbmysql/Makefile
* contrib/hbodbc/Makefile
* contrib/hbpgsql/Makefile
* contrib/hbssl/Makefile
* contrib/hbtip/ChangeLog
* contrib/hbwhat/Makefile
* contrib/hbwhat/tests/hbmk_b32.bat
* contrib/hbwhat/tests/hbmk_vc.bat
* contrib/mtpl_b32.bat
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_gcc.sh
* contrib/mtpl_vc.bat
* contrib/mtpl_vc.mak
* contrib/rddads/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* doc/es/tracing.txt
* doc/gmake.txt
* doc/tracing.txt
* include/hbapi.h
* source/main/harbour.c
* source/pp/hbpp.c
* source/rdd/dbffpt/Makefile
* source/vm/cmdarg.c
* source/vm/Makefile
* source/vm/vmmt/Makefile
* tests/multifnc/Makefile
* tests/testid.prg
* utils/hbdoc/Makefile
* utils/hbi18n/Makefile
* utils/hbmake/hbmake.prg
* utils/hbmake/Makefile
* utils/hbrun/Makefile
* utils/hbtest/Makefile
* Renamed remaining build configration envvars:
- PRG_USR -> HB_USER_PRGFLAGS
- C_USR -> HB_USER_CFLAGS
- L_USR -> HB_USER_LDFLAGS
- A_USR -> HB_USER_AFLAGS
- MK_USR -> HB_USER_MAKEFLAGS
(finally settled with HB_USER* instead of HB_USR*,
this also means that HB_USER_LIBS was kept unchanged.)
; Please update your environment.
You may use these commands to make it easy:
gsar -o -sPRG_USR -rHB_USER_PRGFLAGS *
gsar -o -sC_USR -rHB_USER_CFLAGS *
gsar -o -sL_USR -rHB_USER_LDFLAGS *
gsar -o -sA_USR -rHB_USER_AFLAGS *
gsar -o -sMK_USR -rHB_USER_MAKEFLAGS *
200 lines
5.5 KiB
Makefile
200 lines
5.5 KiB
Makefile
#
|
|
# $Id$
|
|
#
|
|
|
|
# --------------------------------------------------------
|
|
# Makefile common section for Harbour Project Contrib libs
|
|
# for GNU gcc compiler
|
|
# --------------------------------------------------------
|
|
|
|
# ---------------------------------------------------------------
|
|
# Copyright 2007 Marek Paliwoda (mpaliwoda "at" interia "dot" pl)
|
|
# See doc/license.txt for licensing terms.
|
|
# ---------------------------------------------------------------
|
|
|
|
# NOTE: You can use these optional envvars to configure the make process:
|
|
#
|
|
# HB_USER_CFLAGS - Extra C compiler options for libraries
|
|
# HB_USER_PRGFLAGS - Extra Harbour compiler options
|
|
#
|
|
|
|
#**********************************************************
|
|
|
|
ifndef HB_ROOT
|
|
HB_ROOT = ../..
|
|
endif
|
|
|
|
#**********************************************************
|
|
|
|
ifndef ECHO
|
|
ECHO = echo
|
|
endif
|
|
ifndef DEL
|
|
DEL = rm -f
|
|
endif
|
|
ifndef COPY
|
|
COPY = cp
|
|
endif
|
|
|
|
#**********************************************************
|
|
# binary file suffixes and prefixes
|
|
#**********************************************************
|
|
|
|
ifndef OBJEXT
|
|
OBJEXT = .o
|
|
endif
|
|
ifndef LIBEXT
|
|
LIBEXT = .a
|
|
endif
|
|
ifndef LIBPREF
|
|
LIBPREF=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.
|
|
#**********************************************************
|
|
|
|
ifndef HB_CC_DIRNAME
|
|
HB_CC_DIRNAME = $(_HB_CC_NAME)
|
|
endif
|
|
|
|
OBJ_DIR = obj/$(HB_CC_DIRNAME)/
|
|
LIB_DIR = $(HB_ROOT)/lib/$(HB_CC_DIRNAME)/
|
|
BIN_DIR = $(HB_ROOT)/bin/$(HB_CC_DIRNAME)/
|
|
|
|
INCLUDE_DIR = $(HB_ROOT)/include
|
|
|
|
#**********************************************************
|
|
# Macros to access Harbour executable and other goodies
|
|
#**********************************************************
|
|
|
|
ifndef HB
|
|
HB = $(BIN_DIR)harbour
|
|
endif
|
|
|
|
#**********************************************************
|
|
# C compiler definition and C flags. These should never have to change.
|
|
#**********************************************************
|
|
|
|
# CC and LD are set in make_gcc.sh
|
|
|
|
#ifeq ($(CC),)
|
|
#CC = gcc
|
|
#endif
|
|
#ifeq ($(LD),)
|
|
#LD = gcc
|
|
#endif
|
|
ifeq ($(MKLIB),)
|
|
MKLIB = ar
|
|
endif
|
|
|
|
#**********************************************************
|
|
|
|
# C Compiler Flags
|
|
|
|
ifneq ($(HB_BUILD_OPTIM),no)
|
|
ifeq ($(HB_ARCHITECTURE),win)
|
|
CFLAGS := -march=i586 $(CFLAGS)
|
|
endif
|
|
CFLAGS := -O3 $(CFLAGS)
|
|
endif
|
|
|
|
CFLAGS := -W -Wall -I$(INCLUDE_DIR) $(HB_USER_CFLAGS) $(CFLAGS)
|
|
CLIBFLAGS := -c $(CFLAGS) $(CLIBFLAGS)
|
|
HARBOURFLAGS := -i$(INCLUDE_DIR) -n1 -q0 -w3 -es2 -km -l $(HB_USER_PRGFLAGS) $(HARBOURFLAGS)
|
|
ifeq ($(HB_BUILD_DEBUG),yes)
|
|
HARBOURFLAGS := $(HARBOURFLAGS) -l-
|
|
endif
|
|
LDFLAGS := $(LDFLAGS)
|
|
|
|
#**********************************************************
|
|
# COMPILE Rules
|
|
#**********************************************************
|
|
|
|
#**********************************************************
|
|
# General *.c --> *.obj COMPILE rule for STATIC Libraries
|
|
$(OBJ_DIR)%$(OBJEXT) : %.c
|
|
@if [ ! -f "$(OBJ_DIR)" ]; then mkdir -p $(OBJ_DIR); fi
|
|
$(CC) $(CLIBFLAGS) -o$@ $<
|
|
#**********************************************************
|
|
# General *.cpp --> *.obj COMPILE rule for STATIC Libraries
|
|
$(OBJ_DIR)%$(OBJEXT) : %.cpp
|
|
@if [ ! -d "$(OBJ_DIR)" ]; then mkdir -p $(OBJ_DIR); fi
|
|
$(CXX) $(CLIBFLAGS) -o$@ $<
|
|
#**********************************************************
|
|
# General *.prg --> *.obj COMPILE rule for STATIC Libraries
|
|
$(OBJ_DIR)%$(OBJEXT) : %.prg
|
|
@if [ ! -d "$(OBJ_DIR)" ]; then mkdir -p $(OBJ_DIR); fi
|
|
$(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)/ $<
|
|
$(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)/$(<F:.prg=.c)
|
|
#**********************************************************
|
|
|
|
include common.mak
|
|
|
|
ALL_HEADERS = $(PRG_HEADERS) $(C_HEADERS)
|
|
|
|
#**********************************************************
|
|
$(LIB_PATH) : $(LIB_OBJS)
|
|
$(MKLIB) $(ARFLAGS) $@ $^
|
|
#**********************************************************
|
|
# CLEAN rule(s)
|
|
#**********************************************************
|
|
|
|
clean: doClean
|
|
Clean: doClean
|
|
CLEAN: doClean
|
|
|
|
doClean:
|
|
-@if [ -f $(LIB_PATH) ]; then $(DEL) $(LIB_PATH); fi
|
|
-@if [ "$(HB_INSTALL_PREFIX)" = "$(HB_ROOT)" ]; then \
|
|
if [ -f $(HB_LIB_INSTALL)/$(LIBNAME)$(LIBEXT) ]; then \
|
|
$(DEL) $(HB_LIB_INSTALL)/$(LIBNAME)$(LIBEXT); \
|
|
fi; \
|
|
fi
|
|
-@for OBJ in $(LIB_OBJS) dummy.file; do \
|
|
if [ -f $${OBJ} ]; then $(DEL) $${OBJ}; fi; \
|
|
done
|
|
-@for HDR in $(ALL_HEADERS) dummy.file; do \
|
|
if [ -f $${HB_INC_INSTALL}/$${HDR} ]; then \
|
|
$(DEL) $${HB_INC_INSTALL}/$${HDR}; \
|
|
fi; \
|
|
done
|
|
|
|
#**********************************************************
|
|
# INSTALL rule(s)
|
|
#**********************************************************
|
|
|
|
install: doInstall
|
|
Install: doInstall
|
|
INSTALL: doInstall
|
|
|
|
doInstall:
|
|
-@if [ -f $(LIB_PATH) ]; then $(COPY) $(LIB_PATH) $(HB_LIB_INSTALL); fi
|
|
-@for HDR in $(ALL_HEADERS) dummy.file; do \
|
|
if [ -f $${HDR} ]; then $(COPY) $${HDR} $(HB_INC_INSTALL); fi; \
|
|
done
|
|
|
|
#**********************************************************
|