Blame noconfig/borlandc.mak

Packit Service 8bf002
# makefile to compile MCPP version 2.7.1 and later for Borland C / BC make
Packit Service 8bf002
#       2008/11 kmatsui
Packit Service 8bf002
# You must first edit BINDIR, INCDIR, LIBDIR and LINKER according to your
Packit Service 8bf002
#		system.
Packit Service 8bf002
# To make compiler-independent-build of MCPP do:
Packit Service 8bf002
#       make
Packit Service 8bf002
#       make install
Packit Service 8bf002
# To make Borland-C-specific-build of MCPP do:
Packit Service 8bf002
#       make -DCOMPILER=BORLANDC
Packit Service 8bf002
#       make -DCOMPILER=BORLANDC install
Packit Service 8bf002
# To re-compile MCPP using Borland-C-specific-build of MCPP do:
Packit Service 8bf002
#       make -DCOMPILER=BORLANDC -DPREPROCESSED
Packit Service 8bf002
#       make -DCOMPILER=BORLANDC -DPREPROCESSED install
Packit Service 8bf002
# To link kmmalloc V.2.5.1 (malloc() package of kmatsui) or later do:
Packit Service 8bf002
#       make [-DPREPROCESSED] -DKMMALLOC
Packit Service 8bf002
#       make [-DPREPROCESSED] -DKMMALLOC install
Packit Service 8bf002
# To make mcpp.lib (subroutine-build of mcpp) do:
Packit Service 8bf002
#       make -DMCPP_LIB mcpplib
Packit Service 8bf002
#       make -DMCPP_LIB mcpplib_install
Packit Service 8bf002
# To make testmain.c (sample to use mcpp.lib) against mcpp.lib do
Packit Service 8bf002
#   (add '-DDLL_IMPORT' to link against the DLL):
Packit Service 8bf002
#       make [-DOUT2MEM] testmain
Packit Service 8bf002
#       make [-DOUT2MEM] testmain_install
Packit Service 8bf002

Packit Service 8bf002
NAME = mcpp
Packit Service 8bf002

Packit Service 8bf002
CC = bcc32
Packit Service 8bf002
CFLAGS = $(CFLAGS) -c -a -d -f- -G -5 -DWIN32
Packit Service 8bf002
	# -DWIN32 is nessecary to compile with bcc32
Packit Service 8bf002
LINKFLAGS = -e$(NAME)
Packit Service 8bf002

Packit Service 8bf002
!if		$d( COMPILER)
Packit Service 8bf002
CPPFLAGS = -DCOMPILER=BORLANDC
Packit Service 8bf002
# BINDIR : Adjust to your system.
Packit Service 8bf002
#	for Borland C V.5.5
Packit Service 8bf002
CFLAGS = $(CFLAGS) -Oi
Packit Service 8bf002
BINDIR = \PUB\COMPILERS\BCC55\BIN
Packit Service 8bf002
!else
Packit Service 8bf002
BINDIR = \PUB\BIN
Packit Service 8bf002
!endif
Packit Service 8bf002

Packit Service 8bf002
!if 	$d( KMMALLOC)
Packit Service 8bf002
MEM_MACRO = -DKMMALLOC=1 -D_MEM_DEBUG=1 -DXMALLOC=1
Packit Service 8bf002
MEMLIB = kmmalloc_debug32.lib
Packit Service 8bf002
!else
Packit Service 8bf002
MEM_MACRO =
Packit Service 8bf002
MEM_LIB =
Packit Service 8bf002
!endif
Packit Service 8bf002

Packit Service 8bf002
OBJS = main.obj directive.obj eval.obj expand.obj support.obj system.obj  \
Packit Service 8bf002
		mbchar.obj
Packit Service 8bf002

Packit Service 8bf002
all:	$(NAME).exe
Packit Service 8bf002

Packit Service 8bf002
$(NAME).exe : $(OBJS)
Packit Service 8bf002
	$(CC) $(LINKFLAGS) $(OBJS) $(MEMLIB)
Packit Service 8bf002

Packit Service 8bf002
!if 	$d( PREPROCESSED)
Packit Service 8bf002
# Make a "pre-preprocessed" header file to recompile MCPP with MCPP.
Packit Service 8bf002
mcpp.H	: system.H noconfig.H internal.H
Packit Service 8bf002
	$(BINDIR)\$(NAME) $(CPPFLAGS) $(MEM_MACRO) preproc.c mcpp.H
Packit Service 8bf002
$(OBJS) : mcpp.H
Packit Service 8bf002
!else
Packit Service 8bf002
main.obj directive.obj eval.obj expand.obj support.obj system.obj mbchar.obj: \
Packit Service 8bf002
		system.H internal.H noconfig.H
Packit Service 8bf002
!endif
Packit Service 8bf002

Packit Service 8bf002
!if 	$d( PREPROCESSED)
Packit Service 8bf002
.c.obj	:
Packit Service 8bf002
	$(BINDIR)\$(NAME) -DPREPROCESSED=1 $(CPPFLAGS) $< $(
Packit Service 8bf002
	$(CC) $(CFLAGS) $(
Packit Service 8bf002
!else
Packit Service 8bf002
.c.obj	:
Packit Service 8bf002
	$(CC) $(CFLAGS) $(CPPFLAGS) $(MEM_MACRO) $<
Packit Service 8bf002
!endif
Packit Service 8bf002

Packit Service 8bf002
install :
Packit Service 8bf002
	copy /b $(NAME).exe $(BINDIR)\$(NAME).exe
Packit Service 8bf002

Packit Service 8bf002
clean	:
Packit Service 8bf002
	-del *.obj *.exe *.bak mcpp.H *.i *.tds *.lib *.dll mcpp$(DLL_VER).* *.so
Packit Service 8bf002

Packit Service 8bf002
!if 	$d( MCPP_LIB)
Packit Service 8bf002
# subroutine-build
Packit Service 8bf002
CFLAGS = $(CFLAGS) -DMCPP_LIB=1
Packit Service 8bf002
LIBDIR = \PUB\COMPILERS\BCC55\LIB
Packit Service 8bf002
INCDIR = \PUB\COMPILERS\BCC55\INCLUDE
Packit Service 8bf002
LINKER = ilink32
Packit Service 8bf002
ADD_OBJS = +main +directive +eval +expand +support +system +mbchar
Packit Service 8bf002

Packit Service 8bf002
mcpplib:	mcpplib_lib mcpplib_dll
Packit Service 8bf002

Packit Service 8bf002
mcpplib_lib:	$(OBJS)
Packit Service 8bf002
	tlib mcpp.lib $(ADD_OBJS)
Packit Service 8bf002

Packit Service 8bf002
# DLL
Packit Service 8bf002
DLL_VER = 0
Packit Service 8bf002
SOBJS = main.so directive.so eval.so expand.so support.so system.so mbchar.so
Packit Service 8bf002
.SUFFIXES: .so
Packit Service 8bf002
.c.so   :
Packit Service 8bf002
	$(CC) $(CFLAGS) $(MEM_MACRO) -DDLL_EXPORT=1 -o$*.so $<
Packit Service 8bf002
mcpplib_dll: $(SOBJS)
Packit Service 8bf002
	$(LINKER) -Tpd c0d32.obj $(SOBJS), mcpp$(DLL_VER).dll, , \
Packit Service 8bf002
            cw32.lib import32.lib $(MEMLIB)
Packit Service 8bf002
	implib mcpp$(DLL_VER).lib mcpp$(DLL_VER).dll
Packit Service 8bf002

Packit Service 8bf002
mcpplib_install:
Packit Service 8bf002
	copy mcpp.lib $(LIBDIR)
Packit Service 8bf002
	copy mcpp$(DLL_VER).lib $(LIBDIR)
Packit Service 8bf002
	copy mcpp$(DLL_VER).dll $(BINDIR)
Packit Service 8bf002
	copy mcpp_lib.h $(INCDIR)
Packit Service 8bf002
	copy mcpp_out.h $(INCDIR)
Packit Service 8bf002
	$(CC) -e$(NAME).exe main_libmcpp.c mcpp$(DLL_VER).lib
Packit Service 8bf002
	copy $(NAME).exe $(BINDIR)
Packit Service 8bf002

Packit Service 8bf002
mcpplib_uninstall:
Packit Service 8bf002
	del $(LIBDIR)\mcpp.lib $(LIBDIR)\mcpp$(DLL_VER).lib \
Packit Service 8bf002
            $(BINDIR)\mcpp$(DLL_VER).dll
Packit Service 8bf002
	del $(BINDIR)\$(NAME).exe
Packit Service 8bf002
	del $(INCDIR)\mcpp*
Packit Service 8bf002
!endif
Packit Service 8bf002

Packit Service 8bf002
# use mcpp as a subroutine from testmain.c
Packit Service 8bf002
!if	$d( DLL_IMPORT)
Packit Service 8bf002
CFLAGS = $(CFLAGS) -DDLL_IMPORT=1
Packit Service 8bf002
LINKLIB = mcpp$(DLL_VER).lib
Packit Service 8bf002
!else
Packit Service 8bf002
LINKLIB = mcpp.lib
Packit Service 8bf002
!endif
Packit Service 8bf002
!if    $d( OUT2MEM)
Packit Service 8bf002
# output to memory buffer
Packit Service 8bf002
CFLAGS = $(CFLAGS) -DOUT2MEM=1
Packit Service 8bf002
!endif
Packit Service 8bf002
TMAIN_LINKFLAGS = testmain.obj -etestmain.exe $(LINKLIB)
Packit Service 8bf002
testmain	:	testmain.obj
Packit Service 8bf002
	$(CC) $(TMAIN_LINKFLAGS)
Packit Service 8bf002
testmain_install	:
Packit Service 8bf002
	copy testmain.exe $(BINDIR)
Packit Service 8bf002
testmain_uninstall	:
Packit Service 8bf002
	del $(BINDIR)\testmain.exe