Skip to content

Commit f54cca2

Browse files
committedDec 9, 2021
cleanup m1n1 makefile
1 parent 858a538 commit f54cca2

File tree

2 files changed

+29
-16
lines changed

2 files changed

+29
-16
lines changed
 

‎.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
build/
12
jevmachocpp.sublime-workspace
23

34
# IDA Pro Runtime temporary file

‎Makefile

+28-16
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
TARGETS := libjevmachopp.a
1+
TARGETS := build/jevmachopp/libjevmachopp.a
22

33
ROOT_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
44

@@ -8,22 +8,26 @@ endif
88

99
LIBJEVMACHOPP_CXX_SRCS := $(wildcard $(ROOT_DIR)/lib/jevmachopp/*.cpp)
1010
LIBJEVMACHOPP_CXX_OBJS := $(notdir $(LIBJEVMACHOPP_CXX_SRCS:.cpp=.o))
11+
1112
LIBJEVMACHOPP_ASM_SRCS := $(wildcard $(ROOT_DIR)/lib/jevmachopp/*.S)
1213
LIBJEVMACHOPP_ASM_OBJS := $(notdir $(LIBJEVMACHOPP_ASM_SRCS:.S=.o))
14+
1315
LIBJEVMACHOPP_OBJS := $(LIBJEVMACHOPP_CXX_OBJS) $(LIBJEVMACHOPP_ASM_OBJS)
1416
# no slurp/mmap on baremetal
1517
LIBJEVMACHOPP_OBJS := $(filter-out Slurp.o,$(LIBJEVMACHOPP_OBJS))
1618
LIBJEVMACHOPP_OBJS := $(filter-out SearchFS.o,$(LIBJEVMACHOPP_OBJS))
19+
LIBJEVMACHOPP_OBJS := $(filter-out PlatformizeHelper.o,$(LIBJEVMACHOPP_OBJS))
20+
LIBJEVMACHOPP_OBJS := $(addprefix build/jevmachopp/,$(LIBJEVMACHOPP_OBJS))
1721

18-
AR ?= aarch64-none-elf-gcc-ar
19-
CC ?= aarch64-none-elf-gcc
20-
CXX ?= aarch64-none-elf-g++
21-
LD ?= aarch64-none-elf-ld
22+
JEV_AR ?= aarch64-none-elf-gcc-ar
23+
JEV_CC ?= aarch64-none-elf-gcc
24+
JEV_CXX ?= aarch64-none-elf-g++
25+
JEV_LD ?= aarch64-none-elf-ld
2226

2327
BOOST_DEFINE_FLAGS := -DBOOST_STATIC_STRING_STANDALONE=1 -DBOOST_NO_EXCEPTIONS=1
2428
FMT_DEFINE_FLAGS := -DFMT_EXCEPTIONS=0 -DFMT_LOCALE -DFMT_USE_DOUBLE=0 -DFMT_USE_FLOAT=0 -DFMT_USE_INT128=0 -DFMT_USE_LONG_DOUBLE=0 -DFMT_USE_NONTYPE_TEMPLATE_PARAMETERS=1 -DFMT_USE_USER_DEFINED_LITERALS=1
2529
FMT_DEFINE_FLAGS += -DUSE_FMT=0
26-
DEFINE_FLAGS := $(BOOST_DEFINE_FLAGS) $(FMT_DEFINE_FLAGS)
30+
DEFINE_FLAGS := -DM1N1=1 $(BOOST_DEFINE_FLAGS) $(FMT_DEFINE_FLAGS)
2731
INCLUDE_FLAGS := -I $(ROOT_DIR)/include -I $(ROOT_DIR)/3rdparty/fmt/include -I $(ROOT_DIR)/3rdparty/hedley -I $(ROOT_DIR)/3rdparty/callable_traits/include -I $(ROOT_DIR)/3rdparty/static_string/include -I $(ROOT_DIR)/3rdparty/static_vector/include -I $(ROOT_DIR)/3rdparty/enum.hpp/headers -I $(ROOT_DIR)/3rdparty/nanorange/include -I $(ROOT_DIR)/3rdparty/uleb128/include -I $(ROOT_DIR)/3rdparty/visit/include
2832

2933
# C_CXX_FLAGS := -Os
@@ -33,6 +37,8 @@ C_CXX_FLAGS += -Wno-unknown-pragmas
3337
JEV_CFLAGS := $(CFLAGS)
3438
JEV_CFLAGS := $(filter-out -ffreestanding,$(JEV_CFLAGS))
3539
JEV_CFLAGS := $(filter-out -nostdinc,$(JEV_CFLAGS))
40+
JEV_CFLAGS := $(filter-out -isystem $(shell $(CC) -print-file-name=include),$(JEV_CFLAGS))
41+
JEV_CFLAGS := $(filter-out -isystem sysinc,$(JEV_CFLAGS))
3642
JEV_CFLAGS := $(JEV_CFLAGS) $(C_CXX_FLAGS) -std=gnu11 $(DEFINE_FLAGS) $(INCLUDE_FLAGS)
3743
JEV_CXXFLAGS := $(JEV_CFLAGS) $(CXXFLAGS) $(C_CXX_FLAGS) -std=gnu++2b $(DEFINE_FLAGS) $(INCLUDE_FLAGS)
3844
JEV_CXXFLAGS := $(filter-out -Werror=strict-prototypes,$(JEV_CXXFLAGS))
@@ -45,18 +51,24 @@ JEV_CXXFLAGS += -fconcepts-diagnostics-depth=6
4551
print-%:
4652
@echo $* = $($*)
4753

48-
all: $(TARGETS)
54+
all-default: $(TARGETS)
55+
56+
.PHONY: clean-default
4957

50-
.PHONY: clean
58+
clean-default:
59+
rm -rf build/*
5160

52-
clean:
53-
rm -f $(TARGETS) $(LIBJEVMACHOPP_OBJS)
61+
%: %-default
62+
@true
5463

55-
%.o: $(ROOT_DIR)/lib/jevmachopp/%.cpp
56-
$(CXX) $(JEV_CXXFLAGS) -c -o $@ $^
64+
build/jevmachopp/%.o: $(ROOT_DIR)/lib/jevmachopp/%.cpp
65+
@mkdir -p "$(dir $@)"
66+
$(JEV_CXX) $(JEV_CXXFLAGS) -c -o $@ $^
5767

58-
%.o: $(ROOT_DIR)/lib/jevmachopp/%.S
59-
$(CXX) $(JEV_CXXFLAGS) -c -o $@ $^
68+
build/jevmachopp/%.o: $(ROOT_DIR)/lib/jevmachopp/%.S
69+
@mkdir -p "$(dir $@)"
70+
$(JEV_CXX) $(JEV_CXXFLAGS) -c -o $@ $^
6071

61-
libjevmachopp.a: $(LIBJEVMACHOPP_OBJS)
62-
$(AR) rc $@ $^
72+
build/jevmachopp/libjevmachopp.a: $(LIBJEVMACHOPP_OBJS)
73+
@mkdir -p "$(dir $@)"
74+
$(JEV_AR) rc $@ $^

0 commit comments

Comments
 (0)
Please sign in to comment.