Skip to content

Commit

Permalink
Fixing stuff bleh
Browse files Browse the repository at this point in the history
  • Loading branch information
Sammyueru committed Jan 8, 2024
1 parent 9a65862 commit 906201f
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 26 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
build
*.o
assets
*.d
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ MSYS2:

# Building
1. Find the folder name of the project you want to compile within the projects folder
2. Compile that project using the command ```make PROJECT=[project you want to compile] OS=[WIN, LINUX, or MACOS (although i've only tested WIN)] [optional: ARCH=[currently just x86 or x64] STATE=[RELEASE or DEBUG] TYPE=[just SOFTWARE for now]] one```
2. Compile that project using the command ```make PROJECT=[project you want to compile] OSS=[WIN, LINUX, or MACOS (although i've only tested WIN)] [optional: ARCH=[currently just x86 or x64] STATE=[RELEASE or DEBUG] TYPE=[just SOFTWARE for now]] one```

# Build Example
```make PROJECT=float_compress OS=WIN one```
```make PROJECT=float_compress OSS=WIN one```

# Clean Example
```make PROJECT=float_compress OS=WIN clean```
```make PROJECT=float_compress OSS=WIN clean```

# Rebuild Example
```make PROJECT=float_compress OS=WIN rebuild```
```make PROJECT=float_compress OSS=WIN rebuild```

# COPYRIGHT
(c) 2024 Samm
Expand Down
66 changes: 44 additions & 22 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,29 @@

CC := gcc
CXX := g++
ROOT := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))

ifeq ($(OS),Windows_NT)
ROOT := $(shell cd)
else
ROOT := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))
endif

PROJECT ?=float_compress
# WIN, LINUX, MACOS, UNIX, NONE
OS ?=WIN
OSS ?=WIN
# RELEASE, DEBUG
STATE ?=RELEASE
# x86, x64, ARM, ARM64
ARCH ?=x64
# SOFTWARE, OS
TYPE ?=SOFTWARE

#export PKG_CONFIG_PATH := $(ROOT)shared/lib/$(ARCH)/pkgconfig/
export PKG_CONFIG_PATH := "$(ROOT)shared/lib/$(ARCH)/pkgconfig/"

SRC := ./projects/$(PROJECT)/
BUILD := ./build/$(PROJECT)/$(ARCH)_$(STATE)/
INCS := -I$(ROOT)shared/inc/
LIBS := -lmingw32 -L./shared/lib/$(ARCH)/ -lSDL2main -lSDL2 -mwindows -lversion -lgdi32 -limm32 -lstdc++
INCS := -I"$(ROOT)shared/inc/"
LIBS := $(shell pkg-config --static --libs sdl2) -lmingw32 -L"$(ROOT)shared/lib/$(ARCH)" -lSDL2main -mwindows -lSDL2 -lversion -lgdi32 -limm32 -lstdc++
#`pkg-config --static --libs sdl2`
#LIBS := -Wl,--start-group -L./shared/lib/$(ARCH)/ -lSDL2main -lSDL2 -Wl,--end-group
# -L$(ROOT)shared/lib/$(ARCH)/ -limgui
Expand All @@ -31,12 +36,12 @@ LIBS := -lmingw32 -L./shared/lib/$(ARCH)/ -lSDL2main -lSDL2 -mwindows -lversi

ifeq ($(ARCH),x86)
CFLAGS := -m32 $(INCS) -Wall
CXXFLAGS := -m32 -std=c++20 $(INCS) -Wall
CXXFLAGS := -m32 -std=c++20 -MMD -MP $(INCS) -Wall
ASFLAGS := -m32 -f elf
LDFLAGS := -m32
else ifeq ($(ARCH),x64)
CFLAGS := -m64 $(INCS) -Wall
CXXFLAGS := -m64 -std=c++20 $(INCS) -Wall
CXXFLAGS := -m64 -std=c++20 -MMD -MP $(INCS) -Wall
ASFLAGS := -m64 -f elf64
LDFLAGS := -m64
endif
Expand All @@ -45,11 +50,11 @@ endif
# LDFLAGS += -m elf_x86_64 -T linker.ld

OUT := $(BUILD)$(PROJECT).exe
ifeq ($(OS),WIN)
ifeq ($(OSS),WIN)
OUT := $(BUILD)$(PROJECT).exe
else ifeq ($(OS),LINUX)
else ifeq ($(OSS),LINUX)
OUT := $(BUILD)$(PROJECT).out
else ifeq ($(OS),MACOS)
else ifeq ($(OSS),MACOS)
OUT := $(BUILD)$(PROJECT).app
else
OUT := $(BUILD)$(PROJECT).bin
Expand All @@ -59,16 +64,19 @@ endif
#C_SOURCES := $(wildcard $(ROOT)shared/inc/*.c) $(wildcard $(SRC)*.c)
#CXX_SOURCES := $(wildcard $(ROOT)shared/inc/*.cpp) $(wildcard $(SRC)*.cpp)

ASM_SOURCES := $(wildcard $(shell find $(ROOT)shared/inc/ $(SRC) -name '*.asm'))
ASM_SOURCES := $(wildcard $(shell find $(SRC) -name '*.asm'))
ASM_SOURCES += $(wildcard $(shell find "$(ROOT)shared/inc/" -name '*.asm'))
#ASM_SOURCES += $(wildcard $(shell find $(ROOT)shared/inc/* -name '*.asm'))
#ASM_SOURCES += $(wildcard $(shell find $(ROOT)shared/inc/* -name '*.S'))
C_SOURCES := $(wildcard $(shell find $(ROOT)shared/inc/ $(SRC) -name '*.c'))
C_SOURCES := $(wildcard $(shell find $(SRC) -name '*.c'))
C_SOURCES += $(wildcard $(shell find "$(ROOT)shared/inc/" -name '*.c'))
#C_SOURCES += $(wildcard $(shell find $(ROOT)shared/inc/ -name '*.c'))
IMGUISRC := $(wildcard $(ROOT)shared/inc/imgui/*.cpp)
IMGUISRC := $(filter-out $(ROOT)shared/inc/imgui/added_by_samm.cpp, $(wildcard $(ROOT)shared/inc/imgui/*.cpp))
IMGUISRC := $(wildcard "$(ROOT)shared/inc/imgui/*.cpp")
#IMGUISRC := $(filter-out $(ROOT)shared/inc/imgui/added_by_samm.cpp, $(wildcard $(ROOT)shared/inc/imgui/*.cpp))
#IMGUISRC += $(ROOT)shared/inc/imgui/added_by_samm.cpp
CXX_SOURCES := $(wildcard $(shell find $(ROOT)shared/inc/ $(SRC) -name '*.cpp'))
#CXX_SOURCES += $(wildcard $(shell find $(ROOT)shared/inc/ -name '*.cpp'))
CXX_SOURCES := $(wildcard $(shell find $(SRC) -name '*.cpp'))
CXX_SOURCES += $(wildcard $(shell find $(ROOT)shared/inc/ -name '*.cpp'))
#CXI_SOURCES := $(wildcard $(shell find "$(ROOT)shared/inc/" -name '*.cpp'))
CXX_SOURCES := $(filter-out $(IMGUISRC), $(CXX_SOURCES))

C_ALL_SRC := $(C_SOURCES)
Expand All @@ -87,34 +95,42 @@ CPP_ALL_SRC := $(CXX_SOURCES) $(IMGUISRC)
ASM_OBJS := $(patsubst %.asm,%.asm.o,$(ASM_SOURCES))
C_OBJS := $(patsubst %.c,%.c.o,$(C_SOURCES))
CXX_OBJS := $(patsubst %.cpp,%.cpp.o,$(CXX_SOURCES))
CXI_OBJS := $(patsubst %.cpp,%.cpp.o,$(CXI_SOURCES))
#C_OBJS := $(patsubst %.c,%.c.o,$(CNEW_ALL_SRC))
#CXX_OBJS := $(patsubst %.cpp,%.cpp.o,$(CNEW_ALL_SRC))

IMGUIOBJS := $(patsubst %.cpp,%.imgui.o,$(IMGUISRC))
IMGUIOBJ := $(ROOT)shared/inc/imgui/dear.imgui.o
IMGUIOBJ := "$(ROOT)shared/inc/imgui/dear.imgui.o"

$(ASM_OBJS): $(ASM_SOURCES)
$(CC) $(ASFLAGS) -c $< -o $@

$(C_OBJS): $(C_SOURCES)
$(CC) $(CFLAGS) -c $< -o $@

$(CXI_OBJS): $(CXI_SOURCES)
$(CXX) $(CXXFLAGS) -c $< -o $@

$(IMGUIOBJS): $(IMGUISRC)
$(CXX) $(CXXFLAGS) -c $< -o $@
#-lSDL2main -lSDL2

$(IMGUIOBJ): $(IMGUIOBJS)
ar rcs $@ $^
# $(CXX) $(LDFLAGS) $(INCS) $^ -o $@ -lmingw32 $(LIBS)
$(CXX) $(LDFLAGS) $(INCS) $^ -o $@ $(LIBS)
# ar rcs $@ $^

-include $(C_OBJS:.o=.d)
-include $(CXX_OBJS:.o=.d)
-include $(ASM_OBJS:.o=.d)

$(CXX_OBJS): $(CXX_SOURCES)
$(CXX) $(CXXFLAGS) -c $< -o $@

create_directories:
mkdir -p $(BUILD)

$(ROOT)shared/lib/$(ARCH)/libimgui.a: $(IMGUIOBJS)
ar rcs $@ $^
#$(ROOT)shared/lib/$(ARCH)/libimgui.a: $(IMGUIOBJS)
# ar rcs $@ $^

build_libs: $(ROOT)shared/lib/$(ARCH)/libimgui.a

Expand All @@ -129,8 +145,14 @@ one: create_directories $(OUT)
#one_all: build_libs one

rebuild: clean one

clean_objs:
rm -rf $(ASM_OBJS) $(C_OBJS) $(CXX_OBJS) $(CPPNEW_ALL_SRC) $(CNEW_ALL_SRC) $(wildcard $(IMGUIOBJS)) $(IMGUIOBJ) $(C_OBJS:.o=.d) $(CXX_OBJS:.o=.d) $(ASM_OBJS:.o=.d)

clean-objs: clean_objs

clean:
rm -rf $(ASM_OBJS) $(C_OBJS) $(CXX_OBJS) $(CPPNEW_ALL_SRC) $(CNEW_ALL_SRC) $(wildcard $(IMGUIOBJS)) $(IMGUIOBJ) $(BUILD)
rm -rf $(ASM_OBJS) $(C_OBJS) $(CXX_OBJS) $(CPPNEW_ALL_SRC) $(CNEW_ALL_SRC) $(wildcard $(IMGUIOBJS)) $(IMGUIOBJ) $(C_OBJS:.o=.d) $(CXX_OBJS:.o=.d) $(ASM_OBJS:.o=.d) $(BUILD)

clean_libs:
rm -rf $(ROOT)shared/lib/$(ARCH)/libimgui.a
Expand Down

0 comments on commit 906201f

Please sign in to comment.