Add makefile
This commit is contained in:
parent
8e31c88671
commit
6ba13bbeda
|
@ -0,0 +1,62 @@
|
|||
CC = clang
|
||||
FC = flang
|
||||
AR = ar
|
||||
|
||||
# Architecture settings for RISC-V (adjust as needed)
|
||||
ARCH_FLAGS =
|
||||
|
||||
DEBUG_FLAGS = -g
|
||||
|
||||
# Library settings
|
||||
LIB_NAME = librvprof
|
||||
STATIC_LIB = $(LIB_NAME).a
|
||||
|
||||
# Source directories
|
||||
SRC_DIR = src
|
||||
INCLUDE_DIR = include
|
||||
|
||||
# Source files
|
||||
C_SOURCES = \
|
||||
$(SRC_DIR)/rvprof_core.c \
|
||||
$(SRC_DIR)/rvprof_timing.c \
|
||||
$(SRC_DIR)/rvprof_symbols.c \
|
||||
$(SRC_DIR)/rvprof_memory.c \
|
||||
$(SRC_DIR)/rvprof_hooks.c \
|
||||
$(SRC_DIR)/rvprof_output.c \
|
||||
$(SRC_DIR)/rvprof_utils.c \
|
||||
$(SRC_DIR)/rvprof_stats.c \
|
||||
$(SRC_DIR)/rvprof_context.c \
|
||||
$(SRC_DIR)/rvprof_fortran.c
|
||||
|
||||
F_SOURCES = rvprof_module.f90
|
||||
HEADERS = rvprof.h $(SRC_DIR)/rvprof_internal.h
|
||||
|
||||
# Object files
|
||||
C_OBJECTS = $(C_SOURCES:.c=.o)
|
||||
F_OBJECTS = $(F_SOURCES:.f90=.o)
|
||||
ALL_OBJECTS = $(C_OBJECTS) $(F_OBJECTS)
|
||||
|
||||
# Module files (generated by Fortran compiler)
|
||||
MOD_FILES = rvprof.mod
|
||||
|
||||
# Default target
|
||||
all: $(STATIC_LIB)
|
||||
|
||||
# Static library
|
||||
$(STATIC_LIB): $(ALL_OBJECTS)
|
||||
@echo "Creating static library $@"
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
# C object files
|
||||
$(SRC_DIR)/%.o: $(SRC_DIR)/%.c $(HEADERS)
|
||||
@echo "Compiling C source $<"
|
||||
$(CC) $(CFLAGS) $(DEBUG_FLAGS) -I. -c $< -o $@
|
||||
|
||||
# Fortran object files (depends on C objects for linking)
|
||||
%.o: %.f90 $(C_OBJECTS)
|
||||
@echo "Compiling Fortran module $<"
|
||||
$(FC) $(FFLAGS) -c $< -o $@
|
||||
|
||||
clean:
|
||||
rm -f $(ALL_OBJECTS) $(MOD_FILES)
|
||||
rm -f $(STATIC_LIB)
|
Loading…
Reference in New Issue