|
Packit |
a4aae4 |
# Sample Makefile to illustrate how to compile and link with
|
|
Packit |
a4aae4 |
# libdap (under VC++ 8.x)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
OBJDIR = .\objects
|
|
Packit |
a4aae4 |
SRCDIR = .
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Compiler, Linker
|
|
Packit |
a4aae4 |
CC = cl
|
|
Packit |
a4aae4 |
LINK = link
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Setup compiler flags
|
|
Packit |
a4aae4 |
MTCFLAGS = /MT
|
|
Packit |
a4aae4 |
MDCFLAGS = /MD
|
|
Packit |
a4aae4 |
CFLAGS = /nologo /W0 /GR /EHsc /c
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Setup linker flags
|
|
Packit |
a4aae4 |
EMTLFLAGS = /nologo /libpath:..\..\lib /NODEFAULTLIB:MSVCRT.lib
|
|
Packit |
a4aae4 |
EMDLFLAGS = /nologo /libpath:..\..\lib
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Setup link libraries
|
|
Packit |
a4aae4 |
EMTLLIBS = libdapMT.lib libdapclientMT.lib libxml2.lib libcurl.lib zlib.lib libxdr.lib pthreadVC.lib
|
|
Packit |
a4aae4 |
EMDLLIBS = libdapMD.lib libdapclientMD.lib libxml2.lib libcurl.lib zlib.lib libxdr.lib pthreadVC.lib
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Setup compiler includes and defines
|
|
Packit |
a4aae4 |
INCS = /I . /I ..\..\include /I ..\..\include\GNU /I ..\..\include\gl /I ..\..\include\xdr /I ..\..\include\curl /I ..\..\include\pthreads
|
|
Packit |
a4aae4 |
CPPUNITINCS = $(INCS) /I $(INCLUDEDIR)/cppunit
|
|
Packit |
a4aae4 |
DEFS = /D WIN32 /D WIN32_LEAN_AND_MEAN
|
|
Packit |
a4aae4 |
CPPFLAGS = $(DEFS) $(INCS)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
@echo "usage: nmake model<MT|MD>; nmake all"
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
all:
|
|
Packit |
a4aae4 |
nmake modelMT
|
|
Packit |
a4aae4 |
nmake modelMD
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
modelMT: setup
|
|
Packit |
a4aae4 |
-md $(OBJDIR)\MT
|
|
Packit |
a4aae4 |
nmake CFLAGS="$(CFLAGS) $(MTCFLAGS)" LFLAGS="$(EMTLFLAGS)" LIBS="$(EMTLLIBS)" OBJDIR=$(OBJDIR)\MT getdap
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
modelMD: setup
|
|
Packit |
a4aae4 |
-md $(OBJDIR)\MD
|
|
Packit |
a4aae4 |
nmake CFLAGS="$(CFLAGS) $(MDCFLAGS)" LFLAGS="$(EMDLFLAGS)" LIBS="$(EMDLLIBS)" OBJDIR=$(OBJDIR)\MD getdap
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Clear built-in rules and set new ones
|
|
Packit |
a4aae4 |
.SUFFIXES :
|
|
Packit |
a4aae4 |
.SUFFIXES : .obj .cc .exe
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
{$(SRCDIR)}.cc{$(OBJDIR)}.obj:
|
|
Packit |
a4aae4 |
$(CC) $(CFLAGS) $(CPPFLAGS) /Fo$@ /Tp $<
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Rule for linking executables. See Microsoft's "mt" command for
|
|
Packit |
a4aae4 |
# embedding external .manifests as necessary.
|
|
Packit |
a4aae4 |
{$(OBJDIR)}.obj{$(OBJDIR)}.exe:
|
|
Packit |
a4aae4 |
$(LINK) $(LFLAGS) /out:$@ $< $(LIBS)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
getdap: $(OBJDIR)\getdap.exe
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
$(OBJDIR)\getdap.exe: $(OBJDIR)\getdap.obj
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# Command-Line Client and select utils in console mode
|
|
Packit |
a4aae4 |
$(OBJDIR)\getdap.obj : $(SRCDIR)\getdap.cc
|
|
Packit |
a4aae4 |
$(CC) $(CFLAGS) $(CPPFLAGS) /Fo$@ /Tp $(SRCDIR)\getdap.cc
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
setup:
|
|
Packit |
a4aae4 |
-mkdir $(OBJDIR)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
clean:
|
|
Packit |
a4aae4 |
-rmdir /Q /S $(OBJDIR)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|