# # Ugly pathname substitutions for Cygnus Win32 Make pathnames to fit Visual C++ command line # Better macros with same functionality welcome! (But don't call external programs like perl from make!) # # i.e. : //z/aei/u/werner/light++//wb/vector2.cpp //Z/aei/u/werner/light++//wb/vector3.cpp # made to: z:\aei\u\werner\light++\wb\vector2.cpp Z:\aei\u\werner\light++\wb\vector3.cpp # # ifeq ($E,.exe) LETTERS= a b c d e f g h i j k l m n o p q r s t u v w x y z \ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z SOURCEFILE_PARAMETER=$(strip $(subst /,\\,$(foreach DRIVE,$(LETTERS),$(filter $(DRIVE):%,$(subst //,/,$(patsubst //$(DRIVE)%,$(DRIVE):%,$<)))))) TARGETFILE_PARAMETER=$(strip $(subst /,\\,$(foreach DRIVE,$(LETTERS),$(filter $(DRIVE):%,$(subst //,/,$(patsubst //$(DRIVE)%,$(DRIVE):%,$@)))))) INCLUDE_PARAMETERS=$(subst /,\\,$(foreach DRIVE,$(LETTERS), $(filter $(DRIVE):% -I$(DRIVE):%,$(subst //$(DRIVE),$(DRIVE):,$(INCLUDES))))) LIBPATH_PARAMETERS=$(subst -L,-LIBPATH:,$(subst /,\\,$(foreach DRIVE,$(LETTERS),$(filter $(DRIVE):% -L$(DRIVE):%,$(subst //$(DRIVE),$(DRIVE):,$(LIBPATHS)))))) OBJECTLIST_PARAMETER=$(strip $(subst /,\\,$(foreach DRIVE,$(LETTERS),$(filter $(DRIVE):%,$(subst //,/,$(patsubst //$(DRIVE)%,$(DRIVE):%,$(OBJS))))))) else SOURCEFILE_PARAMETER=$< TARGETFILE_PARAMETER=$@ # So geht das nicht: Nach dem Sortieren ist -I/client/package/Amira # meistens ganz vorn. Dann kann man Pakete nicht mehr in AMIRA_LOCAL # ueberschreiben. #INCLUDE_PARAMETERS=$(sort $(INCLUDES)) # Vielleicht gibt es so was wie 'unique' ? INCLUDE_PARAMETERS=$(INCLUDES) LIBPATH_PARAMETERS=$(LIBPATHS) OBJECTLIST_PARAMETERS=$(OBJS) endif