# 
# $Id: Makefile 138 2010-05-12 17:34:01Z rosiere $
# 
# [ Description ]
# 
# Makefile
# 

include				Makefile.defs

#-----[ Specint variable ]--------------------------------------------------------

SPECINT2000_PATH		= /users/cao/kane/Project/SPEC_CPU2000/benchspec/CINT2000
SPECINT2000_PATHS		= $(addprefix $(SPECINT2000_PATH)/, $(BENCHS))

SPECINT2000_PATH_INC		= $(addprefix -I, $(addsuffix /src, $(SPECINT2000_PATHS)))
SPECINT2000_PATH_SRC		= $(wildcard $(addsuffix /src    , $(SPECINT2000_PATHS)))
SPECINT2000_OBJECTS    		= $(foreach bench,$(BENCHS),$(addprefix $(DIR_OBJ)/$(bench)_,   $(addsuffix .o, $(basename $(notdir $(wildcard $(SPECINT2000_PATH)/$(bench)/src/*.c))))))
SPECINT2000_FLAGS		= $(addprefix -D, 	$(subst 0,,\
							$(subst 1,,\
							$(subst 2,,\
							$(subst 3,,\
							$(subst 4,,\
							$(subst 5,,\
							$(subst 6,,\
							$(subst 7,,\
							$(subst 8,,\
							$(subst 9,,\
							$(subst .,SPEC_,$(BENCHS))\
							)))))))))))

#-----[ Directory ]---------------------------------------------------------------

DIR_SOFT			= ..

DIR_SRC				= ./src
DIR_C				= $(DIR_SRC)/c
DIR_ASM				= $(DIR_SRC)/asm
DIR_SYS				= $(DIR_SRC)/sys
DIR_INC		       		= $(DIR_SRC)/include
DIR_LDSCRIPT			= $($(OS)_DIR_LDSCRIPT)

INCDIR 				= $($(OS)_INCDIR) -I$(DIR_INC)
LIBDIR				= $($(OS)_LIBDIR)
LIBNAME				= $($(OS)_LIBNAME)

#-----[ Flags ]-------------------------------------------------------------------

FLAGS				= -DSPECINT2000_PATH=\"$(SPECINT2000_PATH)\" -DNB_THREAD_MAX=$(NB_THREAD_MAX) $(SPECINT2000_FLAGS) $(BENCHS_TYPE)

FLAGS_164.gzip			= -I$(SPECINT2000_PATH)/164.gzip/src
FLAGS_175.vpr			= -I$(SPECINT2000_PATH)/175.vpr/src     -DSPEC_CPU2000
FLAGS_176.gcc			= -I$(SPECINT2000_PATH)/176.gcc/src
FLAGS_181.mcf			= -I$(SPECINT2000_PATH)/181.mcf/src     -DWANT_STDC_PROTO
FLAGS_186.crafty		= -I$(SPECINT2000_PATH)/186.crafty/src
FLAGS_197.parser		= -I$(SPECINT2000_PATH)/197.parser/src
FLAGS_252.eon			= -I$(SPECINT2000_PATH)/252.eon/src
FLAGS_253.perlbmk		= -I$(SPECINT2000_PATH)/253.perlbmk/src
FLAGS_254.gap			= -I$(SPECINT2000_PATH)/254.gap/src
FLAGS_255.vortex		= -I$(SPECINT2000_PATH)/255.vortex/src
FLAGS_256.bzip2			= -I$(SPECINT2000_PATH)/256.bzip2/src   -DWANT_STDC_PROTO
FLAGS_300.twolf			= -I$(SPECINT2000_PATH)/300.twolf/src   -DSPEC_CPU2000

#-----[ Files ]-------------------------------------------------------------------
OBJECTS				= 	$($(OS)_OBJECTS) \
					$(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s))	\
					$(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s))	\
					$(patsubst $(DIR_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_C)/*.c))	\
					$(SPECINT2000_OBJECTS)

vpath	%.h	$(SPECINT2000_PATH_INC)
# vpath	%.c	$(SPECINT2000_PATH_SRC)

include				$(DIR_SOFT)/Makefile.Software
include				$(DIR_SOFT)/Makefile.Workload

$(DIR_OBJ)/164.gzip_%.o		: $(SPECINT2000_PATH)/164.gzip/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_164.gzip)    -o $@   -c $^ ;

$(DIR_OBJ)/175.vpr_%.o		: $(SPECINT2000_PATH)/175.vpr/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_175.vpr)     -o $@   -c $^ ;

$(DIR_OBJ)/176.gcc_%.o		: $(SPECINT2000_PATH)/176.gcc/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_176.gcc)     -o $@   -c $^ ;

$(DIR_OBJ)/181.mcf_%.o		: $(SPECINT2000_PATH)/181.mcf/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_181.mcf)     -o $@   -c $^ ;

$(DIR_OBJ)/186.crafty_%.o	: $(SPECINT2000_PATH)/186.crafty/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_186.crafty)     -o $@   -c $^ ;

$(DIR_OBJ)/255.vortex_%.o	: $(SPECINT2000_PATH)/255.vortex/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_255.vortex)  -o $@   -c $^ ;

$(DIR_OBJ)/197.parser_%.o	: $(SPECINT2000_PATH)/197.parser/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_197.parser)  -o $@   -c $^ ;

$(DIR_OBJ)/252.eon_%.o		: $(SPECINT2000_PATH)/252.eon/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_252.eon)  -o $@   -c $^ ;

$(DIR_OBJ)/253.perlbmk_%.o	: $(SPECINT2000_PATH)/253.perlbmk/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_253.perlbmk)  -o $@   -c $^ ;

$(DIR_OBJ)/254.gap_%.o		: $(SPECINT2000_PATH)/254.gap/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_254.gap)  -o $@   -c $^ ;

$(DIR_OBJ)/256.bzip2_%.o	: $(SPECINT2000_PATH)/256.bzip2/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_256.bzip2)   -o $@   -c $^ ;

$(DIR_OBJ)/300.twolf_%.o	: $(SPECINT2000_PATH)/300.twolf/src/%.c
				@\
                                $(ECHO) "Compilation        : $*.c";		\
				$($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_300.twolf)   -o $@   -c $^ ;
