54 lines
1.4 KiB
Makefile
54 lines
1.4 KiB
Makefile
# Makefile for Test Generator
|
|
|
|
CXX = g++
|
|
CXXFLAGS = -std=c++11 -Wall -O2
|
|
TARGET = testgen
|
|
SRCDIR = src
|
|
OBJDIR = obj
|
|
|
|
# Source files
|
|
SOURCES = $(SRCDIR)/main.cpp \
|
|
$(SRCDIR)/json_parser.cpp \
|
|
$(SRCDIR)/file_utils.cpp \
|
|
$(SRCDIR)/code_generator.cpp
|
|
|
|
# Object files
|
|
OBJECTS = $(OBJDIR)/main.o \
|
|
$(OBJDIR)/json_parser.o \
|
|
$(OBJDIR)/file_utils.o \
|
|
$(OBJDIR)/code_generator.o
|
|
|
|
# Default target
|
|
all: $(OBJDIR) $(TARGET)
|
|
|
|
# Create object directory
|
|
$(OBJDIR):
|
|
mkdir -p $(OBJDIR)
|
|
|
|
# Link executable
|
|
$(TARGET): $(OBJECTS)
|
|
$(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJECTS)
|
|
|
|
# Compile source files
|
|
$(OBJDIR)/main.o: $(SRCDIR)/main.cpp
|
|
$(CXX) $(CXXFLAGS) -c $(SRCDIR)/main.cpp -o $(OBJDIR)/main.o
|
|
|
|
$(OBJDIR)/json_parser.o: $(SRCDIR)/json_parser.cpp $(SRCDIR)/json_parser.h
|
|
$(CXX) $(CXXFLAGS) -c $(SRCDIR)/json_parser.cpp -o $(OBJDIR)/json_parser.o
|
|
|
|
$(OBJDIR)/file_utils.o: $(SRCDIR)/file_utils.cpp $(SRCDIR)/file_utils.h
|
|
$(CXX) $(CXXFLAGS) -c $(SRCDIR)/file_utils.cpp -o $(OBJDIR)/file_utils.o
|
|
|
|
$(OBJDIR)/code_generator.o: $(SRCDIR)/code_generator.cpp $(SRCDIR)/code_generator.h $(SRCDIR)/data_structures.h
|
|
$(CXX) $(CXXFLAGS) -c $(SRCDIR)/code_generator.cpp -o $(OBJDIR)/code_generator.o
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
rm -rf $(OBJDIR) $(TARGET) $(TARGET).exe
|
|
|
|
# Install (optional)
|
|
install: $(TARGET)
|
|
cp $(TARGET) /usr/local/bin/
|
|
|
|
.PHONY: all clean install
|