changeset 2399:c92141043d37

* Added more CMake goods for progs build
author rotor <rotor>
date Tue, 16 Oct 2007 23:21:42 +0000
parents 585506fdf584
children cdfebeb13f51
files CMakeLists.txt cmake-modules/FindBISON.cmake cmake-modules/FindFLEX.cmake progs/CMakeLists.txt
diffstat 4 files changed, 379 insertions(+), 164 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,7 @@
 
 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake-modules")
 
+
 #ADD_SUBDIRECTORY( testdir )
 #ADD_SUBDIRECTORY( doc )
 
@@ -33,6 +34,11 @@
 # aliases
 SET(VERSION "${PACKAGE_VERSION}")
 
+# progs needed to build
+SET(FLEX_FIND_REQUIRED)
+SET(BISON_FIND_REQUIRED)
+FIND_PACKAGE(BISON)
+FIND_PACKAGE(FLEX)
 
 # check for prereqs
 INCLUDE(CheckFunctionExists)
new file mode 100644
--- /dev/null
+++ b/cmake-modules/FindBISON.cmake
@@ -0,0 +1,162 @@
+# - Find bison executable and provides macros to generate custom build rules
+# The module defined the following variables:
+#  BISON_EXECUTABLE - path to the bison program
+#  BISON_VERSION - version of bison
+#  BISON_FOUND - true if the program was found
+# If bison is found, the module defines the macros:
+#  BISON_TARGET(<Name> <YaccInput> <CodeOutput> [VERBOSE <file>]
+#              [COMPILE_FLAGS <string>])
+# which will create  a custom rule to generate  a parser. <YaccInput> is
+# the path to  a yacc file. <CodeOutput> is the name  of the source file
+# generated by bison.  A header file is also  be generated, and contains
+# the  token  list.  If  COMPILE_FLAGS  option is  specified,  the  next
+# parameter is  added in the bison  command line.  if  VERBOSE option is
+# specified, <file> is created  and contains verbose descriptions of the
+# grammar and parser. The macro defines a set of variables:
+#  BISON_${Name}_DEFINED - true is the macro ran successfully
+#  BISON_${Name}_INPUT - The input source file, an alias for <YaccInput>
+#  BISON_${Name}_OUTPUT_SOURCE - The source file generated by bison
+#  BISON_${Name}_OUTPUT_HEADER - The header file generated by bison
+#  BISON_${Name}_OUTPUTS - The sources files generated by bison
+#  BISON_${Name}_COMPILE_FLAGS - Options used in the bison command line
+#
+# Example:
+# FIND_PACKAGE(BISON)
+# BISON_TARGET(MyParser parser.y ${PROJECT_BINARY_DIR}/parser.cpp)
+# ADD_EXECUTABLE(Foo main.cpp ${BISON_MyParser_OUTPUTS})
+#
+
+# Copyright (c) 2006, Tristan Carel
+# All rights reserved.
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of the University of California, Berkeley nor the
+#       names of its contributors may be used to endorse or promote products
+#       derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# $Id: FindBISON.cmake,v 1.1 2007-10-16 23:21:42 rotor Exp $
+
+SET(BISON_FOUND FALSE)
+
+FIND_PROGRAM(BISON_EXECUTABLE bison DOC "path to the bison executable")
+MARK_AS_ADVANCED(BISON_EXECUTABLE)
+
+IF(BISON_EXECUTABLE)
+  SET(BISON_FOUND TRUE)
+
+  EXECUTE_PROCESS(COMMAND ${BISON_EXECUTABLE} --version
+    OUTPUT_VARIABLE BISON_version_output
+    ERROR_VARIABLE BISON_version_error
+    RESULT_VARIABLE BISON_version_result
+    OUTPUT_STRIP_TRAILING_WHITESPACE)
+  IF(NOT ${BISON_version_result} EQUAL 0)
+    MESSAGE(SEND_ERROR "Command \"${BISON_EXECUTABLE} --version\" failed with output:\n${BISON_version_error}")
+  ELSE(NOT ${BISON_version_result} EQUAL 0)
+    STRING(REGEX REPLACE "^bison \\(GNU Bison\\) ([^\n]+)\n.*" "\\1"
+      BISON_VERSION "${BISON_version_output}")
+  ENDIF(NOT ${BISON_version_result} EQUAL 0)
+
+  # internal macro
+  MACRO(BISON_TARGET_option_verbose Name BisonOutput filename)
+    LIST(APPEND BISON_TARGET_cmdopt "--verbose")
+    GET_FILENAME_COMPONENT(BISON_TARGET_output_path "${BisonOutput}" PATH)
+    GET_FILENAME_COMPONENT(BISON_TARGET_output_name "${BisonOutput}" NAME_WE)
+    ADD_CUSTOM_COMMAND(OUTPUT ${filename}
+      COMMAND ${CMAKE_COMMAND} -E copy
+      "${BISON_TARGET_output_path}/${BISON_TARGET_output_name}.output"
+      "${filename}"
+      DEPENDS
+      "${BISON_TARGET_output_path}/${BISON_TARGET_output_name}.output"
+      COMMENT "[BISON][${Name}] Copying bison verbose table to ${filename}"
+      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+    SET(BISON_${Name}_VERBOSE_FILE ${filename})
+    LIST(APPEND BISON_TARGET_extraoutputs
+      "${BISON_TARGET_output_path}/${BISON_TARGET_output_name}.output")
+  ENDMACRO(BISON_TARGET_option_verbose)
+
+  # internal macro
+  MACRO(BISON_TARGET_option_extraopts Options)
+    SET(BISON_TARGET_extraopts "${Options}")
+    SEPARATE_ARGUMENTS(BISON_TARGET_extraopts)
+    LIST(APPEND BISON_TARGET_cmdopt ${BISON_TARGET_extraopts})
+  ENDMACRO(BISON_TARGET_option_extraopts)
+
+  MACRO(BISON_TARGET Name BisonInput BisonOutput)
+    SET(BISON_TARGET_output_header "")
+    SET(BISON_TARGET_command_opt "")
+    SET(BISON_TARGET_outputs "${BisonOutput}")
+    IF(NOT ${ARGC} EQUAL 3 AND NOT ${ARGC} EQUAL 5 AND NOT ${ARGC} EQUAL 7)
+      MESSAGE(SEND_ERROR "Usage")
+    ELSE(NOT ${ARGC} EQUAL 3 AND NOT ${ARGC} EQUAL 5 AND NOT ${ARGC} EQUAL 7)
+      # Parsing parameters
+      IF(${ARGC} GREATER 5 OR ${ARGC} EQUAL 5)
+	IF("${ARGV3}" STREQUAL "VERBOSE")
+	  BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${ARGV4}")
+	ENDIF("${ARGV3}" STREQUAL "VERBOSE")
+	IF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
+	  BISON_TARGET_option_extraopts("${ARGV4}")
+	ENDIF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
+      ENDIF(${ARGC} GREATER 5 OR ${ARGC} EQUAL 5)
+      IF(${ARGC} EQUAL 7)
+	IF("${ARGV5}" STREQUAL "VERBOSE")
+	  BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${ARGV6}")
+	ENDIF("${ARGV5}" STREQUAL "VERBOSE")
+	IF("${ARGV5}" STREQUAL "COMPILE_FLAGS")
+	  BISON_TARGET_option_extraopts("${ARGV6}")
+	ENDIF("${ARGV5}" STREQUAL "COMPILE_FLAGS")
+      ENDIF(${ARGC} EQUAL 7)
+
+      # Header's name generated by bison (see option -d)
+      LIST(APPEND BISON_TARGET_cmdopt "-d")
+      STRING(REGEX REPLACE "^(.*)\\.c([^.]*)$" "\\1.h\\2"
+	BISON_${Name}_OUTPUT_HEADER "${ARGV2}")
+      LIST(APPEND BISON_TARGET_outputs "${BISON_${Name}_OUTPUT_HEADER}")
+
+      ADD_CUSTOM_COMMAND(OUTPUT ${BISON_TARGET_outputs}
+	${BISON_TARGET_extraoutputs}
+	COMMAND ${BISON_EXECUTABLE} ${BISON_TARGET_cmdopt} -o ${ARGV2} ${ARGV1}
+	DEPENDS ${ARGV1}
+	COMMENT "[BISON][${Name}] Building parser with bison ${BISON_VERSION}"
+	WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+
+      # define target variables
+      SET(BISON_${Name}_DEFINED TRUE)
+      SET(BISON_${Name}_INPUT ${ARGV1})
+      SET(BISON_${Name}_OUTPUTS ${BISON_TARGET_outputs})
+      SET(BISON_${Name}_COMPILE_FLAGS ${BISON_TARGET_cmdopt})
+      SET(BISON_${Name}_OUTPUT_SOURCE "${BisonOutput}")
+
+    ENDIF(NOT ${ARGC} EQUAL 3 AND NOT ${ARGC} EQUAL 5 AND NOT ${ARGC} EQUAL 7)
+  ENDMACRO(BISON_TARGET)
+
+ENDIF(BISON_EXECUTABLE)
+
+
+IF(NOT BISON_FOUND)
+  IF(NOT BISON_FIND_QUIETLY)
+    MESSAGE(STATUS "BISON was not found.")
+  ELSE(NOT BISON_FIND_QUIETLY)
+    IF(BISON_FIND_REQUIRED)
+      MESSAGE(FATAL_ERROR "BISON was not found.")
+    ENDIF(BISON_FIND_REQUIRED)
+  ENDIF(NOT BISON_FIND_QUIETLY)
+ENDIF(NOT BISON_FOUND)
+
+# FindBISON.cmake ends here
new file mode 100644
--- /dev/null
+++ b/cmake-modules/FindFLEX.cmake
@@ -0,0 +1,134 @@
+# - Find flex executable and provides a macro to generate custom build rules
+# The module defines the following variables:
+#  FLEX_FOUND - true is flex executable is found
+#  FLEX_VERSION - the version of flex
+# If flex is found on the system, the module provides the macro:
+#  FLEX_TARGET(Name FlexInput FlexOutput [COMPILE_FLAGS <string>])
+# which creates a custom command  to generate the <FlexOutput> file from
+# the <FlexInput> file.  If  COMPILE_FLAGS option is specified, the next
+# parameter is added to the flex  command line. Name is an alias used to
+# get  details of  this custom  command.  Indeed the  macro defines  the
+# following variables:
+#  FLEX_${Name}_DEFINED - true is the macro ran successfully
+#  FLEX_${Name}_OUTPUTS - the source file generated by the custom rule, an
+#  alias for FlexOutput
+#  FLEX_${Name}_INPUT - the flex source file, an alias for ${FlexInput}
+#
+# Flex scanners oftenly use tokens  defined by Bison: the code generated
+# by Flex  depends of the header  generated by Bison.   This module also
+# defines a macro:
+#  ADD_FLEX_BISON_DEPENDENCY(FlexTarget BisonTarget)
+# which  adds the  required dependency  between a  scanner and  a parser
+# where  <FlexTarget>  and <BisonTarget>  are  the  first parameters  of
+# respectively FLEX_TARGET and BISON_TARGET macros.
+#
+# Example:
+#  FIND_PACKAGE(BISON)
+#  FIND_PACKAGE(FLEX)
+#  BISON_TARGET(MyParser parser.y ${PROJECT_BINARY_DIR}/parser.cpp
+#  FLEX_TARGET(MyScanner lexer.l ${PROJECT_BINARY_DIR}/lexer.cpp)
+#  ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)
+#
+
+# Copyright (c) 2006, Tristan Carel
+# All rights reserved.
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of the University of California, Berkeley nor the
+#       names of its contributors may be used to endorse or promote products
+#       derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# $Id: FindFLEX.cmake,v 1.1 2007-10-16 23:21:42 rotor Exp $
+
+SET(FLEX_FOUND FALSE)
+
+FIND_PROGRAM(FLEX_EXECUTABLE flex DOC "path to the flex executable")
+MARK_AS_ADVANCED(FLEX_EXECUTABLE)
+
+FIND_LIBRARY(FL_LIBRARY NAMES fl
+  PATHS /usr/lib DOC "path to the fl library")
+SET(FLEX_LIBRARIES ${FL_LIBRARY})
+
+IF(FLEX_EXECUTABLE)
+  SET(FLEX_FOUND TRUE)
+
+  EXECUTE_PROCESS(COMMAND ${FLEX_EXECUTABLE} --version
+    OUTPUT_VARIABLE FLEX_version_output
+    ERROR_VARIABLE FLEX_version_error
+    RESULT_VARIABLE FLEX_version_result
+    OUTPUT_STRIP_TRAILING_WHITESPACE)
+  IF(NOT ${FLEX_version_result} EQUAL 0)
+    MESSAGE(SEND_ERROR "Command \"${FLEX_EXECUTABLE} --version\" failed with output:\n${FLEX_version_error}")
+  ELSE(NOT ${FLEX_version_result} EQUAL 0)
+    STRING(REGEX REPLACE "^flex (.*)$" "\\1"
+      FLEX_VERSION "${FLEX_version_output}")
+  ENDIF(NOT ${FLEX_version_result} EQUAL 0)
+
+  MACRO(FLEX_TARGET Name Input Output)
+    SET(FLEX_TARGET_usage "FLEX_TARGET(<Name> <Input> <Output> [COMPILE_FLAGS <string>]")
+    IF(${ARGC} GREATER 3)
+      IF(${ARGC} EQUAL 5)
+	IF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
+	  SET(FLEX_EXECUTABLE_opts  "${ARGV4}")
+	  SEPARATE_ARGUMENTS(FLEX_EXECUTABLE_opts)
+	ELSE("${ARGV3}" STREQUAL "COMPILE_FLAGS")
+	  MESSAGE(SEND_ERROR ${FLEX_TARGET_usage})
+	ENDIF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
+      ELSE(${ARGC} EQUAL 5)
+	MESSAGE(SEND_ERROR ${FLEX_TARGET_usage})
+      ENDIF(${ARGC} EQUAL 5)
+    ENDIF(${ARGC} GREATER 3)
+    ADD_CUSTOM_COMMAND(OUTPUT ${Output}
+      COMMAND ${FLEX_EXECUTABLE} ${FLEX_EXECUTABLE_opts} -o${Output} ${Input}
+      DEPENDS ${Input}
+      COMMENT "[FLEX][${Name}] Building scanner with flex ${FLEX_VERSION}"
+      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+
+    SET(FLEX_${Name}_DEFINED TRUE)
+    SET(FLEX_${Name}_OUTPUTS ${Output})
+    SET(FLEX_${Name}_INPUT ${Input})
+    SET(FLEX_${Name}_COMPILE_FLAGS ${FLEX_EXECUTABLE_opts})
+  ENDMACRO(FLEX_TARGET)
+
+  MACRO(ADD_FLEX_BISON_DEPENDENCY FlexTarget BisonTarget)
+    IF(NOT FLEX_${FlexTarget}_TARGET)
+      MESSAGE(SEND_ERROR "Flex target `${FlexTarget}' does not exists.")
+    ENDIF(NOT FLEX_${FlexTarget}_TARGET)
+    IF(NOT BISON_${BisonTarget}_TARGET)
+      MESSAGE(SEND_ERROR "Bison target `${BisonTarget}' does not exists.")
+    ENDIF(NOT BISON_${BisonTarget}_TARGET)
+
+    SET_SOURCE_FILES_PROPERTIES(${FLEX_${FlexTarget}_OUTPUT}
+      PROPERTIES OBJECT_DEPENDS ${BISON_${BisonTarget}_OUTPUT_HEADER})
+  ENDMACRO(ADD_FLEX_BISON_DEPENDENCY)
+
+ENDIF(FLEX_EXECUTABLE)
+
+IF(NOT FLEX_FOUND)
+  IF(NOT FLEX_FIND_QUIETLY)
+    MESSAGE(STATUS "FLEX was not found.")
+  ELSE(NOT FLEX_FIND_QUIETLY)
+    IF(FLEX_FIND_REQUIRED)
+      MESSAGE(FATAL_ERROR "FLEX was not found.")
+    ENDIF(FLEX_FIND_REQUIRED)
+  ENDIF(NOT FLEX_FIND_QUIETLY)
+ENDIF(NOT FLEX_FOUND)
+
+# FindFLEX.cmake ends here
--- a/progs/CMakeLists.txt
+++ b/progs/CMakeLists.txt
@@ -2,27 +2,33 @@
 #
 # Andrew Janke - a.janke@gmail.com
 
+SET(CMAKE_MODULE_PATH "../cmake-modules")
 
 LINK_DIRECTORIES(../)
 INCLUDE_DIRECTORIES(Proglib)
 LINK_LIBRARIES( minc2 ${NETCDF_LIBRARY} ${HDF5_LIBRARY} )
 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
 
+SET(BISON_FIND_REQUIRED)
+FIND_PACKAGE(BISON)
 
 # all the progs
+ADD_EXECUTABLE(../invert_raw_image mincview/invert_raw_image.c)
 ADD_EXECUTABLE(../mincaverage mincaverage/mincaverage.c)
 
-#ADD_EXECUTABLE(../minccalc minccalc/minccalc.c
+ADD_EXECUTABLE(../minccalc minccalc/minccalc.c
 #                           minccalc/gram.y
-#                           minccalc/eval.c
-#                           minccalc/ident.c
+                           minccalc/gram.c
+                           minccalc/eval.c
+                           minccalc/ident.c
 #                           minccalc/lex.l
-#                           minccalc/node.c
-#                           minccalc/optim.c
-#                           minccalc/scalar.c
-#                           minccalc/sym.c
-#                           minccalc/vector.c)
-
+                           minccalc/lex.c
+                           minccalc/node.c
+                           minccalc/optim.c
+                           minccalc/scalar.c
+                           minccalc/sym.c
+                           minccalc/vector.c)
+BISON_TARGET(../minccalc minccalc/gram.y minccalc/gram.c)
 
 ADD_EXECUTABLE(../mincconcat mincconcat/mincconcat.c)
 ADD_EXECUTABLE(../mincconvert mincconvert/mincconvert.c)
@@ -32,6 +38,8 @@
                             mincdump/vardata.c
                             mincdump/dumplib.c)
                             
+ADD_EXECUTABLE(../mincexample1 mincexample/mincexample1.c)
+ADD_EXECUTABLE(../mincexample2 mincexample/mincexample2.c)
 ADD_EXECUTABLE(../mincexpand mincexpand/mincexpand.c)
 ADD_EXECUTABLE(../mincextract mincextract/mincextract.c)
 
@@ -49,6 +57,7 @@
 ADD_EXECUTABLE(../mincmakescalar mincmakescalar/mincmakescalar.c)
 ADD_EXECUTABLE(../mincmakevector mincmakevector/mincmakevector.c)
 ADD_EXECUTABLE(../mincmath mincmath/mincmath.c)
+ADD_EXECUTABLE(../minc_modify_header minc_modify_header/minc_modify_header.c)
 
 ADD_EXECUTABLE(../mincresample mincresample/mincresample.c
                                mincresample/resample_volumes.c
@@ -65,68 +74,59 @@
 ADD_EXECUTABLE(../rawtominc rawtominc/rawtominc.c
                             Proglib/convert_origin_to_start.c)
 
-#ADD_EXECUTABLE(../minc minc/minc.c)
-#ADD_EXECUTABLE(../minc minc/minc.c)
-#ADD_EXECUTABLE(../minc minc/minc.c)
-#ADD_EXECUTABLE(../minc minc/minc.c)
-#ADD_EXECUTABLE(../minc minc/minc.c)
+ADD_EXECUTABLE(../voxeltoworld coordinates/voxeltoworld.c)
+TARGET_LINK_LIBRARIES(../voxeltoworld volume_io2 minc2)
 
-
-INSTALL(TARGETS 
-        ../mincaverage
-        ../mincconcat
-        ../minccopy
-        DESTINATION bin)
+ADD_EXECUTABLE(../worldtovoxel coordinates/worldtovoxel.c)
+TARGET_LINK_LIBRARIES(../worldtovoxel volume_io2 minc2)
 
 
-# SET(invert_raw_image_SRCS
-#    progs/mincview/invert_raw_image.c
-#    )
-# TARGET_LINK_LIBRARIES(invert_raw_image  ${QT_AND_KDECORE_LIBS} )
-# 
-# 
-# 
-# SET(transformtags_SRCS
-#    progs/xfm/transformtags.c
-#    )
-# TARGET_LINK_LIBRARIES(transformtags  ${QT_AND_KDECORE_LIBS} )
-# 
+ADD_EXECUTABLE(../transformtags xfm/transformtags.c)
+TARGET_LINK_LIBRARIES(../transformtags volume_io2 minc2)
+
+ADD_EXECUTABLE(../xfmconcat xfm/xfmconcat.c)
+TARGET_LINK_LIBRARIES(../xfmconcat volume_io2 minc2)
+
+ADD_EXECUTABLE(../xfminvert xfm/xfminvert.c)
+TARGET_LINK_LIBRARIES(../xfminvert volume_io2 minc2)
 
-# SET(xfmconcat_SRCS
-#    progs/xfm/xfmconcat.c
-#    )
-# TARGET_LINK_LIBRARIES(xfmconcat  ${QT_AND_KDECORE_LIBS} )
-# 
-# 
-# 
-# SET(xfminvert_SRCS
-#    progs/xfm/xfminvert.c
-#    )
-# 
-# TARGET_LINK_LIBRARIES(xfminvert  ${QT_AND_KDECORE_LIBS} )
-# 
-# 
-# 
-# SET(mincdump_SRCS
-#    progs/mincdump/mincdump.c
-#    progs/mincdump/vardata.c
-#    progs/mincdump/dumplib.c
-#    )
-# 
-# TARGET_LINK_LIBRARIES(mincdump  ${QT_AND_KDECORE_LIBS} )
-# 
-# INSTALL( TARGETS mincdump DESTINATION bin)
-# 
-# 
-# 
+# install progs
+INSTALL(TARGETS
+        ../invert_raw_image 
+        ../mincaverage
+        ../minccalc
+        ../mincconcat
+        ../mincconvert
+        ../minccopy
+        ../mincdump
+#        ../mincexample1
+#        ../mincexample2
+        ../mincexpand
+        ../mincextract
+#        ../mincgen
+        ../mincinfo
+        ../minclookup
+        ../mincmakescalar
+        ../mincmakevector
+        ../mincmath
+        ../minc_modify_header
+        ../mincresample
+        ../mincreshape
+        ../mincstats
+        ../minctoraw
+        ../mincwindow
+        ../rawtominc
+        ../voxeltoworld
+        ../worldtovoxel
+        ../transformtags
+        ../xfmconcat
+        ../xfminvert
+        DESTINATION bin)
 
 
 
 
 
-
-# 
-# 
 # SET(acr_nema_STAT_SRCS
 #    conversion/Acr_nema/acr_io.c
 #    conversion/Acr_nema/dicom_client_routines.c
@@ -138,41 +138,9 @@
 #    conversion/Acr_nema/message.c
 #    conversion/Acr_nema/value_repr.c
 #    )
-# 
 # ADD_LIBRARY(acr_nema STATIC ${acr_nema_STAT_SRCS})
-# 
-# 
-# 
-# SET(voxeltoworld_SRCS
-#    progs/coordinates/voxeltoworld.c
-#    )
-# 
-# TARGET_LINK_LIBRARIES(voxeltoworld )
-# 
-# INSTALL( TARGETS voxeltoworld DESTINATION bin)
-# 
-# 
-# 
-# SET(worldtovoxel_SRCS
-#    progs/coordinates/worldtovoxel.c
-#    )
-# 
-# TARGET_LINK_LIBRARIES(worldtovoxel )
-# 
-# INSTALL( TARGETS worldtovoxel DESTINATION bin)
-# 
-# 
-# 
-# SET(minc_modify_header_SRCS
-#    progs/minc_modify_header/minc_modify_header.c
-#    )
-# 
-# TARGET_LINK_LIBRARIES(minc_modify_header )
-# 
-# INSTALL( TARGETS minc_modify_header DESTINATION bin)
-# 
-# 
-# 
+
+
 # SET(ecattominc_SRCS
 #    conversion/ecattominc/ecattominc.c
 #    conversion/ecattominc/insertblood.c
@@ -180,58 +148,28 @@
 #    conversion/ecattominc/machine_indep.c
 #    )
 # 
-# TARGET_LINK_LIBRARIES(ecattominc  ${QT_AND_KDECORE_LIBS} )
-# 
-# INSTALL( TARGETS ecattominc DESTINATION bin)
-# 
-# 
-# 
 # SET(minctoecat_SRCS
 #    conversion/minctoecat/minctoecat.c
 #    conversion/minctoecat/ecat_write.c
 #    conversion/minctoecat/machine_indep.c
 #    )
 # 
-# TARGET_LINK_LIBRARIES(minctoecat  ${QT_AND_KDECORE_LIBS} )
-# 
-# INSTALL( TARGETS minctoecat DESTINATION bin)
-# 
-# 
-# 
 # SET(mnc2nii_SRCS
 #    conversion/nifti1/mnc2nii.c
 #    conversion/nifti1/nifti1_io.c
 #    conversion/nifti1/znzlib.c
 #    )
 # 
-# TARGET_LINK_LIBRARIES(mnc2nii  ${QT_AND_KDECORE_LIBS} )
-# 
-# INSTALL( TARGETS mnc2nii DESTINATION bin)
-# 
-# 
-# 
 # SET(nii2mnc_SRCS
 #    conversion/nifti1/nii2mnc.c
 #    conversion/nifti1/nifti1_io.c
 #    conversion/nifti1/znzlib.c
 #    )
 # 
-# TARGET_LINK_LIBRARIES(nii2mnc  ${QT_AND_KDECORE_LIBS} )
-# 
-# INSTALL( TARGETS nii2mnc DESTINATION bin)
-# 
-# 
-# 
 # SET(upet2mnc_SRCS
 #    conversion/micropet/upet2mnc.c
 #    )
 # 
-# TARGET_LINK_LIBRARIES(upet2mnc  ${QT_AND_KDECORE_LIBS} )
-# 
-# INSTALL( TARGETS upet2mnc DESTINATION bin)
-# 
-# 
-# 
 # SET(dcm2mnc_SRCS
 #    conversion/dcm2mnc/dcm2mnc.c
 #    conversion/dcm2mnc/dicom_to_minc.c
@@ -241,46 +179,21 @@
 #    conversion/dcm2mnc/progress.c
 #    conversion/dcm2mnc/string_to_filename.c
 #    )
-# 
-# TARGET_LINK_LIBRARIES(dcm2mnc  ${QT_AND_KDECORE_LIBS} acr_nema )
-# 
-# INSTALL( TARGETS dcm2mnc DESTINATION bin)
-# 
-# 
+# TARGET_LINK_LIBRARIES(dcm2mnc acr_nema )
 # 
 # SET(vff2mnc_SRCS
 #    conversion/vff2mnc/vff2mnc.c
 #    )
-# 
-# TARGET_LINK_LIBRARIES(vff2mnc  ${QT_AND_KDECORE_LIBS} )
-# 
-# INSTALL( TARGETS vff2mnc DESTINATION bin)
-# 
-# 
-# 
-# SET(mincexample1_SRCS
-#    progs/mincexample/mincexample1.c
-#    )
-# 
-# TARGET_LINK_LIBRARIES(mincexample1  ${QT_AND_KDECORE_LIBS} )
-# 
-# 
-# 
-# SET(mincexample2_SRCS
-#    progs/mincexample/mincexample2.c
-#    )
-# 
-# TARGET_LINK_LIBRARIES(mincexample2  ${QT_AND_KDECORE_LIBS} )
-# 
-# 
-# ########### install files ###############
-# 
-# INSTALL(FILES   DESTINATION /include/volume_io )
-# INSTALL(FILES   progs/xfm/xfmflip DESTINATION  )
-# INSTALL(FILES   progs/mincdiff/mincdiff  
-#                 progs/mincedit/mincedit  
-#                 progs/mincheader/mincheader  
-#                 progs/minchistory/minchistory  
-#                 progs/mincpik/mincpik  
-#                 progs/mincview/mincview DESTINATION  )
+
+
+
+# perl and shell scripts
+INSTALL(FILES mincdiff/mincdiff  
+              mincedit/mincedit  
+              mincheader/mincheader  
+              minchistory/minchistory  
+              mincpik/mincpik  
+              mincview/mincview
+        DESTINATION bin )
+
 # INSTALL(FILES   DESTINATION /include/acr_nema )