tinycobol/cobroutines/Makefile.mingw

168 lines
4.2 KiB
Makefile

#
# Makefile.in for the Tiny COBOL compiler runtime routines library
#
#
# Debug flags are set in htconfig.h
# -DPICTURE_TESTING -DDEBUG_RTS
#
CCX=gcc
ASM=as
INCLUDES=-I/usr/include -I/usr/local/include -I/usr/include/glibc -I/c/tcl/include -I../lib -I.. -I. -I/c/PostgreSQL/include
CCXFLAGS=${INCLUDES} -Wall
WRES=windres
WRESFLAGS=-O coff
RANLIB=ranlib
AR=ar
lib_dir=@install_dir@
INSTRC=${lib_dir}
RCFILE=htrtconf
INSTALL=install.exe
INSTALL_DATA=${INSTALL}
MV = mv -f
RM = rm -f
LNK = ln -sf
MKDIR = mkdir -p
#
LIBS1=-L/usr/local/lib -L/c/mingw/lib -lcurses
LIBS2=-L/usr/local/lib /e/tinycobol/tcltk84/tcl84.dll /e/tinycobol/tcltk84/tk84.dll
LIBS3=-L/usr/local/lib -L/c/PostgreSQL/lib -lpq
#
# Default install directory is set in htconfig.h
#
lib_version=@tcob_version@
lib_name1=tcroutines
lib_name2=tctcl
lib_name3=tcpgres
#
# Libraries to build
#
STATIC_LIB1=lib${lib_name1}.a
SHARED_LIB1=${lib_name1}.dll
SHARED_LIB1A=${lib_name1}.dll.a
STATIC_LIB2=lib${lib_name2}.a
SHARED_LIB2=${lib_name2}.dll
SHARED_LIB2A=${lib_name2}.dll.a
STATIC_LIB3=lib${lib_name3}.a
SHARED_LIB3=${lib_name3}.dll
SHARED_LIB3A=${lib_name3}.dll.a
#
# Sources list
#
SRC1 = screen.c dir.c files.c globals.c system.c
OBJS1 = $(SRC1:.c=.o)
SRC2 = tctcl.c
OBJS2 = $(SRC2:.c=.o)
SRC3 = sql_clear_query.c sql_connect_db.c sql_disconnect_db.c sql_exec_query.c \
sql_free_memory.c sql_get_tuple.c sql_get_value.c sql_max_field.c sql_max_tuple.c sql_status_message.c
OBJS3 = $(SRC3:.c=.o)
#
# Rules for compiling .c .s sources
#
.SUFFIX: .c .o .lo
.c.o:
$(CCX) $(CCXFLAGS) -c $<
%.lo: %.c
$(CCX) $(CCXFLAGS1) -c $< -o $@
#
# Notes on building and using the shared htcobol library.
# - The linker will try to use the shared libraries by default.
# If not available it will try to use the static libraries.
# - When linking with a shared htcobol library, all other libraries must be
# named, whether they are used in the cobol program or not.
# (i.e. -lncurses -ldb)
# - To run a cobol program built with a shared htcobol library, and the
# htcobol library is not installed in one of the standard locations, use
# the $LD_LIBRARY_PATH environmental variable to add this path.
# (i.e. export LD_LIBRARY_PATH=this path:$LD_LIBRARY_PATH )
# - For testing purposes, it is recommended that only a static htcobol library
# be used, since gdb will not work properly with shared libraries.
#
all: static-libs
devel: static-libs shared-libs
static-libs: ${STATIC_LIB1} ${STATIC_LIB2} ${STATIC_LIB3}
shared-libs: ${SHARED_LIB1} ${SHARED_LIB2} ${SHARED_LIB3}
#
# Rules for building the static libraries
#
${STATIC_LIB1}: ${OBJS1}
${AR} cr ${STATIC_LIB1} ${OBJS1}
${RANLIB} ${STATIC_LIB1}
${STATIC_LIB2}: ${OBJS2}
${AR} cr ${STATIC_LIB2} ${OBJS2}
${RANLIB} ${STATIC_LIB2}
${STATIC_LIB3}: ${OBJS3}
${AR} cr ${STATIC_LIB3} ${OBJS3}
${RANLIB} ${STATIC_LIB3}
#
# Rules for building the shared libraries
#
${SHARED_LIB1}: ${OBJS1}
${CCX} -shared -Wl,--out-implib,${lib_name1}.dll.a,--output-def,${lib_name1}.def -o ${SHARED_LIB1} $(OBJS1) ${LIBS1}
${SHARED_LIB2}: ${OBJS2}
${CCX} -shared -Wl,--out-implib,${lib_name2}.dll.a,--output-def,${lib_name2}.def -o ${SHARED_LIB2} $(OBJS2) ${LIBS2}
${SHARED_LIB3}: ${OBJS3}
${CCX} -shared -Wl,--out-implib,${lib_name3}.dll.a,--output-def,${lib_name3}.def -o ${SHARED_LIB3} $(OBJS3) ${LIBS3}
#
# Rule for cleaning
#
clean:
@${RM} ${OBJS1} ${OBJS2} ${OBJS3} \
${STATIC_LIB1} ${SHARED_LIB1} ${SHARED_LIB1A} \
${STATIC_LIB2} ${SHARED_LIB2} ${SHARED_LIB2A} \
${STATIC_LIB3} ${SHARED_LIB3} ${SHARED_LIB3A} \
core *.bak *.o *.lo
#
# Rule for installing
#
install: install-dir install-static install-shared
install-static: ${STATIC_LIB1} ${STATIC_LIB2} ${STATIC_LIB3}
# ${INSTALL} ${STATIC_LIB1} ${lib_dir}/${STATIC_LIB1}
# ${INSTALL} ${STATIC_LIB2} ${lib_dir}/${STATIC_LIB2}
# ${INSTALL} ${STATIC_LIB3} ${lib_dir}/${STATIC_LIB3}
install-shared: ${SHARED_LIB1} ${SHARED_LIB2} ${SHARED_LIB3}
${INSTALL} ${SHARED_LIB1} ${lib_dir}/${SHARED_LIB1}
${INSTALL} ${SHARED_LIB2} ${lib_dir}/${SHARED_LIB2}
${INSTALL} ${SHARED_LIB3} ${lib_dir}/${SHARED_LIB3}
# ${INSTALL} ${SHARED_LIB1A} ${lib_dir}/${SHARED_LIB1A}
# ${INSTALL} ${SHARED_LIB2A} ${lib_dir}/${SHARED_LIB2A}
# ${INSTALL} ${SHARED_LIB3A} ${lib_dir}/${SHARED_LIB3A}
install-dir:
$(MKDIR) $(INSTRC)