76 lines
No EOL
2.5 KiB
Makefile
76 lines
No EOL
2.5 KiB
Makefile
INC_DIR = include
|
|
SRC_DIR = src
|
|
OBJ_DIR = obj
|
|
BIN_DIR = bin
|
|
LIB_DIR = bin
|
|
|
|
CC = gcc
|
|
AS = as
|
|
AR = ar
|
|
LD = ld
|
|
PYTHON = python
|
|
CFLAGS = -Wall -I$(INC_DIR)
|
|
ASFLAGS =
|
|
LDFLAGS = -z noexecstack -lcap
|
|
|
|
SHARED_OBJ =
|
|
SHARED_DEPS = $(INC_DIR)/debug.h
|
|
|
|
RTDISASM_SRC = rtdisasm.c
|
|
RTDISASM_OBJ := $(addprefix $(OBJ_DIR)/,$(patsubst %.s,%.o,$(patsubst %.c,%.o,$(RTDISASM_SRC)))) $(SHARED_OBJ)
|
|
RTDISASM_SRC := $(addprefix $(SRC_DIR)/,$(RTDISASM_SRC))
|
|
RTDISASM_DEPS = rtdisasm.h rtdisasm_table.h
|
|
RTDISASM_DEPS := $(addprefix $(INC_DIR)/,$(RTDISASM_DEPS)) $(SHARED_DEPS)
|
|
|
|
RTDISASM_TEST_SRC = rtdisasm_test.c rtdisasm_test_data.s
|
|
RTDISASM_TEST_OBJ := $(addprefix $(OBJ_DIR)/,$(patsubst %.s,%.o,$(patsubst %.c,%.o,$(RTDISASM_TEST_SRC))))
|
|
RTDISASM_TEST_SRC := $(addprefix $(SRC_DIR)/,$(RTDISASM_TEST_SRC))
|
|
RTDISASM_TEST_DEPS =
|
|
RTDISASM_TEST_DEPS := $(addprefix $(INC_DIR)/,$(RTDISASM_TEST_DEPS)) $(SHARED_DEPS) rtdisasm
|
|
|
|
BLACKJACK_SRC = main.c process.c
|
|
BLACKJACK_OBJ := $(addprefix $(OBJ_DIR)/,$(patsubst %.s,%.o,$(patsubst %.c,%.o,$(BLACKJACK_SRC)))) $(SHARED_OBJ)
|
|
BLACKJACK_SRC := $(addprefix $(SRC_DIR)/,$(BLACKJACK_SRC))
|
|
BLACKJACK_DEPS = process.h process_debug.h
|
|
BLACKJACK_DEPS := $(addprefix $(INC_DIR)/,$(BLACKJACK_DEPS)) rtdisasm $(SHARED_DEPS)
|
|
|
|
DUMMY_TARGET_SRC = dummy_target.c dummy_destination.s
|
|
DUMMY_TARGET_OBJ := $(addprefix $(OBJ_DIR)/,$(patsubst %.s,%.o,$(patsubst %.c,%.o,$(DUMMY_TARGET_SRC))))
|
|
DUMMY_TARGET_SRC := $(addprefix $(SRC_DIR)/,$(DUMMY_TARGET_SRC))
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.s
|
|
$(AS) $(ASFLAGS) -o $@ $<
|
|
|
|
rtdisasm: $(RTDISASM_OBJ) $(RTDISASM_DEPS)
|
|
$(PYTHON) genc.py xml/raw/x86/Intel/AZ.xml | $(CC) -x c $(CFLAGS) -c -o $(OBJ_DIR)/rtdisasm_table.o -
|
|
$(AR) -crs $(BIN_DIR)/librtdisasm.a $(RTDISASM_OBJ) $(OBJ_DIR)/rtdisasm_table.o
|
|
|
|
$(OBJ_DIR)/rtdisasm_test.o: $(SRC_DIR)/rtdisasm_test.c
|
|
$(CC) $(CFLAGS) -mavx -c -o $@ $<
|
|
|
|
rtdisasm_test: $(RTDISASM_TEST_OBJ) $(RTDISASM_TEST_DEPS)
|
|
$(CC) $(LDFLAGS) -o $(BIN_DIR)/$@ $(RTDISASM_TEST_OBJ) $(LIB_DIR)/librtdisasm.a
|
|
|
|
blackjack: $(BLACKJACK_OBJ) $(BLACKJACK_DEPS)
|
|
$(CC) $(LDFLAGS) $(LIB_DIR)/librtdisasm.a -o $(BIN_DIR)/$@ $(BLACKJACK_OBJ)
|
|
|
|
dummy_target: $(DUMMY_TARGET_OBJ)
|
|
$(CC) $(LDFLAGS) -o $(BIN_DIR)/$@ $(DUMMY_TARGET_OBJ)
|
|
|
|
.PHONY: all clean debug
|
|
|
|
TARGETS = blackjack dummy_target rtdisasm_test
|
|
|
|
all: $(TARGETS)
|
|
|
|
debug: CFLAGS += -DDEBUG -g
|
|
debug: LDFLAGS += -g
|
|
debug: ASFLAGS += -g
|
|
debug: $(TARGETS)
|
|
|
|
clean:
|
|
rm -f $(OBJ_DIR)/*.o
|
|
rm -f $(BIN_DIR)/*
|