#
IDIR  = $(ESP_ROOT)\include
!include $(IDIR)\$(ESP_ARCH).$(MSVC)
SDIR  = $(MAKEDIR)
LDIR  = $(ESP_ROOT)\lib
!IFDEF ESP_BLOC
ODIR  = $(ESP_BLOC)\obj
!ELSE
ODIR  = .
!ENDIF

# Directory to install header files
UTILDIR=$(IDIR)\aim\utils

OBJS  =	$(ODIR)\attrUtils.obj $(ODIR)\meshUtils.obj $(ODIR)\cfdUtils.obj $(ODIR)\miscUtils.obj \
	$(ODIR)\feaUtils.obj $(ODIR)\vlmUtils.obj $(ODIR)\nastranUtils.obj $(ODIR)\nastranPyUtils.obj $(ODIR)\tecplotUtils.obj \
	$(ODIR)\arrayUtils.obj $(ODIR)\deprecateUtils.obj $(ODIR)\cardUtils.obj $(ODIR)\nastranCards.obj $(ODIR)\jsonUtils.obj
OBJSP =	$(ODIR)\vlmSpanSpace.obj

!IFDEF PYTHONINC
# OBJSPython = $(ODIR)\nastranOP2Reader.obj Cython does not work on Windoze. Might work with CYTHON_USE_MODULE_STATE.
DEFINE=$(DEFINE) /DHAVE_PYTHON /DCYTHON_PEP489_MULTI_PHASE_INIT=0
PYINC=/I$(PYTHONINC)
!ENDIF

default:	$(LDIR)\utils.lib copy test

$(LDIR)\utils.lib:	$(OBJS) $(OBJSP) $(OBJSPython)
	-del $(LDIR)\utils.lib
	lib /out:$(LDIR)\utils.lib $(OBJS) $(OBJSP) $(OBJSPython)

$(OBJS) $(OBJSP) $(OBJSPython): $(IDIR)\aimUtil.h $(IDIR)\capsTypes.h *.h cython\*.h

{$(SDIR)\}.c{$(ODIR)}.obj::
	cl /c $(COPTS) $(DEFINE) /Fo"$(ODIR)"\ /I$(IDIR) $(PYINC) /Icython $<

{$(SDIR)\cython\}.c{$(ODIR)}.obj::
	cl /c $(COPTS) $(DEFINE) /Fo"$(ODIR)"\ /I$(IDIR) $(PYINC) $<

{$(SDIR)\}.cpp{$(ODIR)}.obj::
	cl /c $(CPPOPT) $(DEFINE) /Fo"$(ODIR)"\ /I$(IDIR) $<

test: $(LDIR)\utils.lib
	 pushd test & $(MAKE) -nologo -f NMakefile & popd

copy: $(UTILDIR)
	cd $(UTILDIR)
	xcopy $(SDIR)\*.h                    /Q /Y
	cd $(SDIR)

$(UTILDIR):
	if not exist $@ mkdir $@

clean:
	-del $(OBJS)
	-del $(OBJSP)
!IFDEF PYTHONINC
#	-del $(OBJSPython)
!ENDIF

cleanall:	clean
	-del $(LDIR)\utils.lib
	-del $(UTILDIR)\*.h
