WORKDIR = %cd%
########################################################
# Common C flags
########################################################
COMCFLAGS = -O2 -Wall -DNDEBUG
########################################################
# Platform specific section
########################################################
ifeq ($(PLATFORM), WIN64)
CC = x86_64-w64-mingw32-gcc.exe
CXX = x86_64-w64-mingw32-g++.exe
LD = x86_64-w64-mingw32-g++.exe
CFLAGS = -m64 -DWIN64 $(COMCFLAGS)
OBJDIR = obj64
XLL_OUT = cooldt-w64.xll
EXE_OUT = cooldt-w64.exe
else
CC = mingw32-gcc.exe
CXX = mingw32-g++.exe
LD = mingw32-g++.exe
CFLAGS = $(COMCFLAGS)
OBJDIR = obj32
XLL_OUT = cooldt.xll
EXE_OUT = cooldt.exe
endif
########################################################
# Common section
########################################################
INC = -I.\\source\\xlw\\include -I.\\source
LIB = -lm
XLL_LDFLAGS = -Wl,"source/cooldt.def" -Wl,--enable-stdcall-fixup -Wl,-static -static-libgcc
EXE_LDFLAGS = -Wl,-static -static-libgcc
########################################################
XLL_OBJ = $(OBJDIR)\\MJCellMatrix.o \
$(OBJDIR)\\HiResTimer.o \
$(OBJDIR)\\FileConverter.o \
$(OBJDIR)\\DoubleOrNothing.o \
$(OBJDIR)\\Dispatcher.o \
$(OBJDIR)\\ArgList.o \
$(OBJDIR)\\NCmatrices.o \
$(OBJDIR)\\XlfArgDesc.o \
$(OBJDIR)\\xlcall.o \
$(OBJDIR)\\XlfServices.o \
$(OBJDIR)\\XlfRef.o \
$(OBJDIR)\\XlfOperProperties.o \
$(OBJDIR)\\XlfOperImpl.o \
$(OBJDIR)\\XlfFuncDesc.o \
$(OBJDIR)\\XlfExcel.o \
$(OBJDIR)\\XlfCmdDesc.o \
$(OBJDIR)\\XlfArgDescList.o \
$(OBJDIR)\\XlfAbstractCmdDesc.o \
$(OBJDIR)\\XlOpenClose.o \
$(OBJDIR)\\XlFunctionRegistration.o \
$(OBJDIR)\\Win32StreamBuf.o \
$(OBJDIR)\\TempMemory.o \
$(OBJDIR)\\PathUpdater.o \
$(OBJDIR)\\PascalStringConversions.o \
$(OBJDIR)\\algebra.o \
$(OBJDIR)\\alloc.o \
$(OBJDIR)\\automatic.o \
$(OBJDIR)\\check-data.o \
$(OBJDIR)\\main-xll.o \
$(OBJDIR)\\main-stdcall.o \
$(OBJDIR)\\mesh.o \
$(OBJDIR)\\solution.o \
$(OBJDIR)\\steady-state.o \
$(OBJDIR)\\transient.o \
$(OBJDIR)\\xlwWrapper.o
EXE_OBJ = $(OBJDIR)\\algebra.o \
$(OBJDIR)\\alloc.o \
$(OBJDIR)\\automatic.o \
$(OBJDIR)\\check-data.o \
$(OBJDIR)\\input.o \
$(OBJDIR)\\main.o \
$(OBJDIR)\\mesh.o \
$(OBJDIR)\\messages.o \
$(OBJDIR)\\solution.o \
$(OBJDIR)\\steady-state.o \
$(OBJDIR)\\transient.o
all: xll_release exe_release
xll_before:
mingw32-make -f RunInterfaceGeneratorWindows.mak BUILD=Release
cmd /c if not exist $(OBJDIR) md $(OBJDIR)
xll_release: xll_before xll_out
exe_release: exe_out
xll_out: $(XLL_OBJ)
$(LD) -shared -s -o $(XLL_OUT) $(XLL_LDFLAGS) $(XLL_OBJ) $(LIB)
exe_out: $(EXE_OBJ)
$(CC) -s -o $(EXE_OUT) $(EXE_LDFLAGS) $(EXE_OBJ) $(LIB)
########################################################
# XLW
########################################################
$(OBJDIR)\\MJCellMatrix.o: source\\xlw\\src\\MJCellMatrix.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\MJCellMatrix.cpp -o $(OBJDIR)\\MJCellMatrix.o
$(OBJDIR)\\HiResTimer.o: source\\xlw\\src\\HiResTimer.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\HiResTimer.cpp -o $(OBJDIR)\\HiResTimer.o
$(OBJDIR)\\FileConverter.o: source\\xlw\\src\\FileConverter.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\FileConverter.cpp -o $(OBJDIR)\\FileConverter.o
$(OBJDIR)\\DoubleOrNothing.o: source\\xlw\\src\\DoubleOrNothing.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\DoubleOrNothing.cpp -o $(OBJDIR)\\DoubleOrNothing.o
$(OBJDIR)\\Dispatcher.o: source\\xlw\\src\\Dispatcher.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\Dispatcher.cpp -o $(OBJDIR)\\Dispatcher.o
$(OBJDIR)\\ArgList.o: source\\xlw\\src\\ArgList.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\ArgList.cpp -o $(OBJDIR)\\ArgList.o
$(OBJDIR)\\NCmatrices.o: source\\xlw\\src\\NCmatrices.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\NCmatrices.cpp -o $(OBJDIR)\\NCmatrices.o
$(OBJDIR)\\XlfArgDesc.o: source\\xlw\\src\\XlfArgDesc.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfArgDesc.cpp -o $(OBJDIR)\\XlfArgDesc.o
$(OBJDIR)\\xlcall.o: source\\xlw\\src\\xlcall.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\xlcall.cpp -o $(OBJDIR)\\xlcall.o
$(OBJDIR)\\XlfServices.o: source\\xlw\\src\\XlfServices.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfServices.cpp -o $(OBJDIR)\\XlfServices.o
$(OBJDIR)\\XlfRef.o: source\\xlw\\src\\XlfRef.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfRef.cpp -o $(OBJDIR)\\XlfRef.o
$(OBJDIR)\\XlfOperProperties.o: source\\xlw\\src\\XlfOperProperties.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfOperProperties.cpp -o $(OBJDIR)\\XlfOperProperties.o
$(OBJDIR)\\XlfOperImpl.o: source\\xlw\\src\\XlfOperImpl.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfOperImpl.cpp -o $(OBJDIR)\\XlfOperImpl.o
$(OBJDIR)\\XlfFuncDesc.o: source\\xlw\\src\\XlfFuncDesc.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfFuncDesc.cpp -o $(OBJDIR)\\XlfFuncDesc.o
$(OBJDIR)\\XlfExcel.o: source\\xlw\\src\\XlfExcel.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfExcel.cpp -o $(OBJDIR)\\XlfExcel.o
$(OBJDIR)\\XlfCmdDesc.o: source\\xlw\\src\\XlfCmdDesc.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfCmdDesc.cpp -o $(OBJDIR)\\XlfCmdDesc.o
$(OBJDIR)\\XlfArgDescList.o: source\\xlw\\src\\XlfArgDescList.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfArgDescList.cpp -o $(OBJDIR)\\XlfArgDescList.o
$(OBJDIR)\\XlfAbstractCmdDesc.o: source\\xlw\\src\\XlfAbstractCmdDesc.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlfAbstractCmdDesc.cpp -o $(OBJDIR)\\XlfAbstractCmdDesc.o
$(OBJDIR)\\XlOpenClose.o: source\\xlw\\src\\XlOpenClose.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlOpenClose.cpp -o $(OBJDIR)\\XlOpenClose.o
$(OBJDIR)\\XlFunctionRegistration.o: source\\xlw\\src\\XlFunctionRegistration.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\XlFunctionRegistration.cpp -o $(OBJDIR)\\XlFunctionRegistration.o
$(OBJDIR)\\Win32StreamBuf.o: source\\xlw\\src\\Win32StreamBuf.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\Win32StreamBuf.cpp -o $(OBJDIR)\\Win32StreamBuf.o
$(OBJDIR)\\TempMemory.o: source\\xlw\\src\\TempMemory.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\TempMemory.cpp -o $(OBJDIR)\\TempMemory.o
$(OBJDIR)\\PathUpdater.o: source\\xlw\\src\\PathUpdater.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\PathUpdater.cpp -o $(OBJDIR)\\PathUpdater.o
$(OBJDIR)\\PascalStringConversions.o: source\\xlw\\src\\PascalStringConversions.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlw\\src\\PascalStringConversions.cpp -o $(OBJDIR)\\PascalStringConversions.o
########################################################
# COOLDT
########################################################
$(OBJDIR)\\algebra.o: source\\algebra.c
$(CC) $(CFLAGS) $(INC) -c source\\algebra.c -o $(OBJDIR)\\algebra.o
$(OBJDIR)\\alloc.o: source\\alloc.c
$(CC) $(CFLAGS) $(INC) -c source\\alloc.c -o $(OBJDIR)\\alloc.o
$(OBJDIR)\\automatic.o: source\\automatic.c
$(CC) $(CFLAGS) $(INC) -c source\\automatic.c -o $(OBJDIR)\\automatic.o
$(OBJDIR)\\check-data.o: source\\check-data.c
$(CC) $(CFLAGS) $(INC) -c source\\check-data.c -o $(OBJDIR)\\check-data.o
$(OBJDIR)\\input.o: source\\input.c
$(CC) $(CFLAGS) $(INC) -c source\\input.c -o $(OBJDIR)\\input.o
$(OBJDIR)\\main.o: source\\main.c
$(CC) $(CFLAGS) $(INC) -c source\\main.c -o $(OBJDIR)\\main.o
$(OBJDIR)\\main-stdcall.o: source\\main-stdcall.c
$(CC) $(CFLAGS) $(INC) -c source\\main-stdcall.c -o $(OBJDIR)\\main-stdcall.o
$(OBJDIR)\\main-xll.o: source\\main-xll.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\main-xll.cpp -o $(OBJDIR)\\main-xll.o
$(OBJDIR)\\mesh.o: source\\mesh.c
$(CC) $(CFLAGS) $(INC) -c source\\mesh.c -o $(OBJDIR)\\mesh.o
$(OBJDIR)\\messages.o: source\\messages.c
$(CC) $(CFLAGS) $(INC) -c source\\messages.c -o $(OBJDIR)\\messages.o
$(OBJDIR)\\solution.o: source\\solution.c
$(CC) $(CFLAGS) $(INC) -c source\\solution.c -o $(OBJDIR)\\solution.o
$(OBJDIR)\\steady-state.o: source\\steady-state.c
$(CC) $(CFLAGS) $(INC) -c source\\steady-state.c -o $(OBJDIR)\\steady-state.o
$(OBJDIR)\\transient.o: source\\transient.c
$(CC) $(CFLAGS) $(INC) -c source\\transient.c -o $(OBJDIR)\\transient.o
$(OBJDIR)\\xlwWrapper.o: source\\xlwWrapper.cpp
$(CXX) $(CFLAGS) $(INC) -c source\\xlwWrapper.cpp -o $(OBJDIR)\\xlwWrapper.o
########################################################
clean:
del /f source\\xlwWrapper.cpp
cmd /c del /f $(XLL_OBJ) $(EXE_OBJ) $(EXE_OUT) $(XLL_OUT)