# Compiler FC = gfortran # Build type (default: Release) BUILD ?= release # Flags depending on build type ifeq ($(BUILD),debug) FFLAGS = -g -O0 -std=legacy else FFLAGS = -O2 -std=legacy endif # Output folder OUT = bin # Targets TARGET1 = event2 TARGET2 = event2_merge # Source files SRCS1 = event2_03.f gbook.f utilities.f SRCS2 = event2_merge.f gbook.f utilities.f # Executable paths EXE1 = $(OUT)/$(TARGET1) EXE2 = $(OUT)/$(TARGET2) # Default rule (build both) all: $(EXE1) $(EXE2) # Build rules $(EXE1): $(SRCS1) mkdir -p $(OUT) $(FC) $(FFLAGS) -o $(EXE1) $(SRCS1) $(EXE2): $(SRCS2) mkdir -p $(OUT) $(FC) $(FFLAGS) -o $(EXE2) $(SRCS2) # Convenience targets debug: $(MAKE) BUILD=debug release: $(MAKE) BUILD=release # Clean rule clean: rm -rf $(OUT)