Mercurial > hg > minc-tools
changeset 1896:d7f6c477082e
Fixed Makefile for Win32 & MSVC
author | bert <bert> |
---|---|
date | Mon, 01 Nov 2004 22:22:12 +0000 |
parents | 74e90ac95a60 |
children | ad47def47574 |
files | Makefile.msvc-win32 |
diffstat | 1 files changed, 332 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/Makefile.msvc-win32 @@ -0,0 +1,332 @@ +# +# Makefile for MINC using Microsoft Visual C/C++ (on Windows, natch). +# +# Written for Microsoft's NMAKE utility, but appears to work +# more-or-less correctly with GNU Make for Windows (as in Cygwin). +# +# Builds all of the MINC command-line utilities, along with the +# MINC libraries MINC.DLL and VOLUME_IO.DLL +# +# Assumes that the environment variable NETCDF_ROOT points to +# the location of netcdf.lib and netcdf.h. This could be made +# more flexible to allow the library and header to reside in +# different directories. +# +# $Header: /private-cvsroot/minc/Makefile.msvc-win32,v 6.1 2004-11-01 22:22:12 bert Exp $ +# +PROGS = worldtovoxel.exe \ + voxeltoworld.exe \ + minc_modify_header.exe \ + mincaverage.exe \ + minccalc.exe \ + mincconcat.exe \ + minccopy.exe \ + mincexpand.exe \ + mincextract.exe \ + mincinfo.exe \ + minclookup.exe \ + mincmakescalar.exe \ + mincmakevector.exe \ + mincmath.exe \ + mincresample.exe \ + mincreshape.exe \ + mincstats.exe \ + minctoraw.exe \ + invert_raw_image.exe \ + mincwindow.exe \ + rawtominc.exe \ + xfmconcat.exe \ + xfminvert.exe + +MINC_HDRS = \ + libsrc\minc.h \ + libsrc\minc_basic.h \ + libsrc\minc_private.h \ + libsrc\minc_routines.h \ + libsrc\minc_structures.h \ + libsrc\minc_useful.h \ + libsrc\minc_varlists.h \ + libsrc\nd_loop.h \ + libsrc\ParseArgv.h \ + libsrc\time_stamp.h \ + libsrc\type_limits.h \ + libsrc\voxel_loop.h + +MINC_OBJS = \ + libsrc\ParseArgv.obj \ + libsrc\dim_conversion.obj \ + libsrc\image_conversion.obj \ + libsrc\minc_convenience.obj \ + libsrc\minc_error.obj \ + libsrc\minc_globdef.obj \ + libsrc\nd_loop.obj \ + libsrc\netcdf_convenience.obj \ + libsrc\time_stamp.obj \ + libsrc\value_conversion.obj \ + libsrc\voxel_loop.obj + +VOLIO_OBJS = \ + volume_io/Geometry/colour.obj \ + volume_io/Geometry/colour_def.obj \ + volume_io/Geometry/gaussian.obj \ + volume_io/Geometry/inverse.obj \ + volume_io/Geometry/newton.obj \ + volume_io/Geometry/points.obj \ + volume_io/Geometry/splines.obj \ + volume_io/Geometry/tensors.obj \ + volume_io/Geometry/transforms.obj \ + volume_io/MNI_formats/gen_xf_io.obj \ + volume_io/MNI_formats/gen_xfs.obj \ + volume_io/MNI_formats/grid_transforms.obj \ + volume_io/MNI_formats/mni_io.obj \ + volume_io/MNI_formats/tag_points.obj \ + volume_io/MNI_formats/thin_plate_spline.obj \ + volume_io/Prog_utils/alloc.obj \ + volume_io/Prog_utils/alloc_check.obj \ + volume_io/Prog_utils/arrays.obj \ + volume_io/Prog_utils/files.obj \ + volume_io/Prog_utils/print.obj \ + volume_io/Prog_utils/progress.obj \ + volume_io/Prog_utils/string.obj \ + volume_io/Prog_utils/time.obj \ + volume_io/Volumes/evaluate.obj \ + volume_io/Volumes/get_hyperslab.obj \ + volume_io/Volumes/input_free.obj \ + volume_io/Volumes/input_mnc.obj \ + volume_io/Volumes/input_volume.obj \ + volume_io/Volumes/multidim_arrays.obj \ + volume_io/Volumes/output_mnc.obj \ + volume_io/Volumes/output_volume.obj \ + volume_io/Volumes/set_hyperslab.obj \ + volume_io/Volumes/volume_cache.obj \ + volume_io/Volumes/volumes.obj + +# Unfortunately the CVS tree does not reflect the desired file organization +# of the software, so we have to fix that up here: + +VOLIO_HDRS = \ + volume_io\Include\volume_io\alloc.h \ + volume_io\Include\volume_io\arrays.h \ + volume_io\Include\volume_io\basic.h \ + volume_io\Include\volume_io\def_math.h \ + volume_io\Include\volume_io\files.h \ + volume_io\Include\volume_io\geometry.h \ + volume_io\Include\volume_io\geom_structs.h \ + volume_io\Include\volume_io\multidim.h \ + volume_io\Include\volume_io\progress.h \ + volume_io\Include\volume_io\string_funcs.h \ + volume_io\Include\volume_io\system_dependent.h \ + volume_io\Include\volume_io\transforms.h \ + volume_io\Include\volume_io\vol_io_prototypes.h \ + volume_io\Include\volume_io\volume_cache.h \ + volume_io\Include\volume_io\volume.h + +INCLUDES = -I$(NETCDF_ROOT) -Ilibsrc -Iprogs/Proglib -Ivolume_io/Include +DEFINES = -DDLL_NETCDF -D_POSIX_ +NETCDF_LIB = $(NETCDF_ROOT)/netcdf.lib +LIBS = minc.lib volume_io.lib $(NETCDF_LIB) +CFLAGS = $(INCLUDES) $(DEFINES) + +.SUFFIXES: .obj + +.c.obj: + cl /nologo $(CFLAGS) -c -Fo$*.obj $< + +all: $(PROGS) minc.dll volume_io.dll + +clean: + -del /s *.obj + -del *.exp + -del *.lib + -del *.dll + -del *.exe + +LINK = link + +$(PROGS): minc.dll volume_io.dll + +$(MINC_OBJS): libsrc\config.h $(MINC_HDRS) + +minc.dll: $(MINC_OBJS) + link /dll /nologo /out:minc.dll $(MINC_OBJS) $(NETCDF_LIB) + +volume_io.dll: $(VOLIO_OBJS) minc.dll + link /dll /nologo /out:volume_io.dll $(VOLIO_OBJS) minc.lib $(NETCDF_LIB) + +$(VOLIO_OBJS): $(VOLIO_HDRS) + +volume_io\Include\volume_io\alloc.h: volume_io\Include\alloc.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\arrays.h: volume_io\Include\arrays.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\basic.h: volume_io\Include\basic.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\def_math.h: volume_io\Include\def_math.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\files.h: volume_io\Include\files.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\geometry.h: volume_io\Include\geometry.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\geom_structs.h: volume_io\Include\geom_structs.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\multidim.h: volume_io\Include\multidim.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\progress.h: volume_io\Include\progress.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\string_funcs.h: volume_io\Include\string_funcs.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\system_dependent.h: volume_io\Include\system_dependent.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\transforms.h: volume_io\Include\transforms.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\vol_io_prototypes.h: volume_io\Include\vol_io_prototypes.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\volume_cache.h: volume_io\Include\volume_cache.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +volume_io\Include\volume_io\volume.h: volume_io\Include\volume.h + -mkdir volume_io\Include\volume_io + copy $? $@ + +libsrc\config.h: libsrc\config.h.msvc-win32 + copy libsrc\config.h.msvc-win32 libsrc\config.h + +WORLDTOVOXEL_OBJS = progs/coordinates/worldtovoxel.obj +worldtovoxel.exe: $(WORLDTOVOXEL_OBJS) + $(LINK) $(WORLDTOVOXEL_OBJS) $(LIBS) + +VOXELTOWORLD_OBJS = progs/coordinates/voxeltoworld.obj +voxeltoworld.exe: $(VOXELTOWORLD_OBJS) + $(LINK) $(VOXELTOWORLD_OBJS) $(LIBS) + +MINC_MODIFY_HEADER_OBJS = progs/minc_modify_header/minc_modify_header.obj +minc_modify_header.exe: $(MINC_MODIFY_HEADER_OBJS) + $(LINK) $(MINC_MODIFY_HEADER_OBJS) $(LIBS) + +MINCAVERAGE_OBJS = progs/mincaverage/mincaverage.obj +mincaverage.exe: $(MINCAVERAGE_OBJS) + $(LINK) $(MINCAVERAGE_OBJS) $(LIBS) + +MINCCALC_OBJS = \ + progs/minccalc/minccalc.obj \ + progs/minccalc/gram.obj \ + progs/minccalc/lex.obj \ + progs/minccalc/eval.obj \ + progs/minccalc/ident.obj \ + progs/minccalc/node.obj \ + progs/minccalc/optim.obj \ + progs/minccalc/scalar.obj \ + progs/minccalc/sym.obj \ + progs/minccalc/vector.obj + +minccalc.exe: $(MINCCALC_OBJS) + $(LINK) $(MINCCALC_OBJS) $(LIBS) + +MINCCONCAT_OBJS = progs/mincconcat/mincconcat.obj +mincconcat.exe: $(MINCCONCAT_OBJS) + $(LINK) $(MINCCONCAT_OBJS) $(LIBS) + +MINCCOPY_OBJS = progs/minccopy/minccopy.obj +minccopy.exe: $(MINCCOPY_OBJS) + $(LINK) $(MINCCOPY_OBJS) $(LIBS) + +MINCEXPAND_OBJS = progs/mincexpand/mincexpand.obj +mincexpand.exe: $(MINCEXPAND_OBJS) + $(LINK) $(MINCEXPAND_OBJS) $(LIBS) + +MINCEXTRACT_OBJS = progs/mincextract/mincextract.obj +mincextract.exe: $(MINCEXTRACT_OBJS) + $(LINK) $(MINCEXTRACT_OBJS) $(LIBS) + +MINCINFO_OBJS = progs/mincinfo/mincinfo.obj +mincinfo.exe: $(MINCINFO_OBJS) + $(LINK) $(MINCINFO_OBJS) $(LIBS) + +MINCLOOKUP_OBJS = progs/minclookup/minclookup.obj +minclookup.exe: $(MINCLOOKUP_OBJS) + $(LINK) $(MINCLOOKUP_OBJS) $(LIBS) + +MINCMAKESCALAR_OBJS = progs/mincmakescalar/mincmakescalar.obj +mincmakescalar.exe: $(MINCMAKESCALAR_OBJS) + $(LINK) $(MINCMAKESCALAR_OBJS) $(LIBS) + +MINCMAKEVECTOR_OBJS = progs/mincmakevector/mincmakevector.obj +mincmakevector.exe: $(MINCMAKEVECTOR_OBJS) + $(LINK) $(MINCMAKEVECTOR_OBJS) $(LIBS) + +MINCMATH_OBJS = progs/mincmath/mincmath.obj +mincmath.exe: $(MINCMATH_OBJS) + $(LINK) $(MINCMATH_OBJS) $(LIBS) + +MINCRESAMPLE_OBJS = \ + progs/mincresample/mincresample.obj \ + progs/mincresample/resample_volumes.obj \ + progs/Proglib/convert_origin_to_start.obj + +mincresample.exe: $(MINCRESAMPLE_OBJS) + $(LINK) $(MINCRESAMPLE_OBJS) $(LIBS) + +MINCRESHAPE_OBJS = \ + progs/mincreshape/mincreshape.obj \ + progs/mincreshape/copy_data.obj + +mincreshape.exe: $(MINCRESHAPE_OBJS) + $(LINK) $(MINCRESHAPE_OBJS) $(LIBS) + +MINCSTATS_OBJS = progs/mincstats/mincstats.obj +mincstats.exe: $(MINCSTATS_OBJS) + $(LINK) $(MINCSTATS_OBJS) $(LIBS) + +MINCTORAW_OBJS = progs/minctoraw/minctoraw.obj +minctoraw.exe: $(MINCTORAW_OBJS) + $(LINK) $(MINCTORAW_OBJS) $(LIBS) + +INVERT_RAW_IMAGE_OBJS = progs/mincview/invert_raw_image.obj +invert_raw_image.exe: $(INVERT_RAW_IMAGE_OBJS) + $(LINK) $(INVERT_RAW_IMAGE_OBJS) $(LIBS) + +MINCWINDOW_OBJS = progs/mincwindow/mincwindow.obj +mincwindow.exe: $(MINCWINDOW_OBJS) + $(LINK) $(MINCWINDOW_OBJS) $(LIBS) + +RAWTOMINC_OBJS = \ + progs/rawtominc/rawtominc.obj \ + progs/Proglib/convert_origin_to_start.obj + +rawtominc.exe: $(RAWTOMINC_OBJS) + $(LINK) $(RAWTOMINC_OBJS) $(LIBS) + +XFMCONCAT_OBJS = progs/xfm/xfmconcat.obj +xfmconcat.exe: $(XFMCONCAT_OBJS) + $(LINK) $(XFMCONCAT_OBJS) $(LIBS) + +XFMINVERT_OBJS = progs/xfm/xfminvert.obj +xfminvert.exe: $(XFMINVERT_OBJS) + $(LINK) $(XFMINVERT_OBJS) $(LIBS)