| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- # for debug
- MODEFLAGS := -O0 -g3
- TARGETDIR := build/Debug
- # for release
- ### MODEFLAGS := -O3
- ### TARGETDIR := build/Release
- OCLH_BUILDER_NAME := oclh_br
- OCLH_COMPILER_NAME := oclh_cr
- OCLH_LINKER_NAME := oclh_lr
- OCLH_LIBRARY_NAME := liboclh.so
- RM := rm -rf
- CC := gcc
- LINKER := gcc
- CFLAGS := -std=c11 -pedantic -Wall -Wextra -Wconversion
- LDFLAGS := -L/usr/local/cuda/lib64 -L/opt/intel/opencl/lib64
- OUTPUTFLAGS := -c -fmessage-length=0
- MISCFLAGS := -pthread
- INCLUDES := -I"src/include_h/" -I"src/include_hd/" \
- -I"/usr/local/cuda/include"
- LIBS := -lOpenCL
- DEFS :=
- # Every subdirectory with source files must be described here
- SRCDIR := src
- # Add inputs and outputs from these tool invocations to the build variables
- C_SRCS += $(wildcard $(SRCDIR)/*.c)
- TARGETDIR_BR := $(TARGETDIR)/br.o
- OBJS_BR += $(patsubst $(SRCDIR)/%.c,$(TARGETDIR_BR)/%.o,$(C_SRCS))
- C_DEPS_BR :=
- C_DEPS_BR += $(wildcard $(TARGETDIR_BR)/*.d)
- TARGETDIR_CR := $(TARGETDIR)/cr.o
- OBJS_CR += $(patsubst $(SRCDIR)/%.c,$(TARGETDIR_CR)/%.o,$(C_SRCS))
- C_DEPS_CR :=
- C_DEPS_CR += $(wildcard $(TARGETDIR_CR)/*.d)
- TARGETDIR_LR := $(TARGETDIR)/lr.o
- OBJS_LR += $(patsubst $(SRCDIR)/%.c,$(TARGETDIR_LR)/%.o,$(C_SRCS))
- C_DEPS_LR :=
- C_DEPS_LR += $(wildcard $(TARGETDIR_LR)/*.d)
- TARGETDIR_LIB := $(TARGETDIR)/lib.o
- OBJS_LIB += $(patsubst $(SRCDIR)/%.c,$(TARGETDIR_LIB)/%.o,$(C_SRCS))
- C_DEPS_LIB :=
- C_DEPS_LIB += $(wildcard $(TARGETDIR_LIB)/*.d)
- # Each subdirectory must supply rules for building sources it contributes
- $(TARGETDIR_BR)/%.o: $(SRCDIR)/%.c
- mkdir -p $(TARGETDIR_BR); \
- $(CC) $(INCLUDES) $(MODEFLAGS) $(CFLAGS) $(DEFS) $(OUTPUTFLAGS) \
- -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
- $(TARGETDIR_CR)/%.o: $(SRCDIR)/%.c
- mkdir -p $(TARGETDIR_CR); \
- $(CC) $(INCLUDES) $(MODEFLAGS) $(CFLAGS) $(DEFS) $(OUTPUTFLAGS) \
- -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
- $(TARGETDIR_LR)/%.o: $(SRCDIR)/%.c
- mkdir -p $(TARGETDIR_LR); \
- $(CC) $(INCLUDES) $(MODEFLAGS) $(CFLAGS) $(DEFS) $(OUTPUTFLAGS) \
- -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
- $(TARGETDIR_LIB)/%.o: $(SRCDIR)/%.c
- mkdir -p $(TARGETDIR_LIB); \
- $(CC) $(INCLUDES) $(MODEFLAGS) $(CFLAGS) $(DEFS) $(OUTPUTFLAGS) \
- -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
- # Add inputs and outputs from these tool invocations to the build variables
- # All Target
- all: oclh_compiler oclh_builder
- # Tool invocations
- oclh_builder: DEFS= -D__OCLH_BUILDER_FLAG -D__OCLH_BUILD_LOG_TO_STDOUT_FLAG
- oclh_builder: OUTPUTNAME=$(OCLH_BUILDER_NAME)
- oclh_builder: $(OBJS_BR)
- @echo 'Building target: $@'
- @echo 'Invoking C Linker'
- $(LINKER) $(LDFLAGS) $(MISCFLAGS) $(LIBS) $(OBJS_BR) \
- -o "$(TARGETDIR)/$(OUTPUTNAME)"
- @echo 'Finished building target: $@'
- @echo ' '
- oclh_compiler: DEFS= -D__OCLH_COMPILER_ONLY_FLAG -D__OCLH_BUILD_LOG_TO_STDOUT_FLAG
- oclh_compiler: OUTPUTNAME=$(OCLH_COMPILER_NAME)
- oclh_compiler: $(OBJS_CR)
- @echo 'Building target: $@'
- @echo 'Invoking C Linker'
- $(LINKER) $(LDFLAGS) $(MISCFLAGS) $(LIBS) $(OBJS_CR) \
- -o "$(TARGETDIR)/$(OUTPUTNAME)"
- @echo 'Finished building target: $@'
- @echo ' '
- clean:
- $(RM) \
- $(OBJS_BR)$(C_DEPS_BR)$(TARGETDIR_BR) \
- $(OBJS_CR)$(C_DEPS_CR)$(TARGETDIR_CR) \
- $(OBJS_LR)$(C_DEPS_LR)$(TARGETDIR_LR) \
- $(OBJS_LIB)$(C_DEPS_LIB)$(TARGETDIR_LIB) \
- $(TARGETDIR)/$(OCLH_BUILDER_NAME) \
- $(TARGETDIR)/$(OCLH_COMPILER_NAME) \
- $(TARGETDIR)/$(OCLH_LINKER_NAME) \
- $(TARGETDIR)/$(OCLH_LIBRARY_NAME)
- @echo ' '
- .PHONY: all clean
- -include makefile.targets
|