refactor makefile

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@515 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-30 07:44:37 +00:00
parent 1ae9b9408c
commit b0bee1e90b
7 changed files with 146 additions and 133 deletions

View File

@@ -2,13 +2,6 @@
PREFIX = /usr/local PREFIX = /usr/local
ifeq ($(TARGET),)
TARGET = $(shell uname -s)
endif
ifneq ($(TARGET),$(shell uname -s))
CROSS = 1
endif
USE_STB_IMAGE = 1 USE_STB_IMAGE = 1
USE_STB_TRUETYPE = 0 USE_STB_TRUETYPE = 0
USE_FREETYPE2 = 1 USE_FREETYPE2 = 1
@@ -25,17 +18,6 @@ else
CFLAGS += -O2 CFLAGS += -O2
endif endif
ifeq ($(TARGET),NetBSD)
VULKAN_NO_STRING_HELPER = 1
endif
ifeq ($(VULKAN_NO_STRING_HELPER),1)
VK_STRING_HELPER_DEFINE =
else
VK_STRING_HELPER_DEFINE = -DHAS_VK_ENUM_STRING_HELPER
endif
CFLAGS += $(VK_STRING_HELPER_DEFINE)
L_CFLAGS = $(DEPINC) $(CFLAGS) -fPIC -D_MILSKO L_CFLAGS = $(DEPINC) $(CFLAGS) -fPIC -D_MILSKO
L_LDFLAGS = $(LDFLAGS) L_LDFLAGS = $(LDFLAGS)
L_LIBS = $(LIBS) L_LIBS = $(LIBS)
@@ -51,124 +33,15 @@ E_CFLAGS = $(CFLAGS)
E_LDFLAGS = $(LDFLAGS) -Lsrc -Wl,-rpath,$(shell pwd)/src E_LDFLAGS = $(LDFLAGS) -Lsrc -Wl,-rpath,$(shell pwd)/src
E_LIBS = $(LIBS) -lMw E_LIBS = $(LIBS) -lMw
FOUND_PLATFORM = 0 include mk/platform.mk
include mk/flags.mk
ifeq ($(TARGET),NetBSD) include mk/stb.mk
CFLAGS += -I/usr/X11R7/include -I/usr/pkg/include include mk/freetype2.mk
LDFLAGS += -L/usr/X11R7/lib -L/usr/pkg/lib -Wl,-R/usr/X11R7/lib -Wl,-R/usr/pkg/lib include mk/opengl.mk
UNIX = 1 include mk/vulkan.mk
OPENGL = 1
VULKAN = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),Linux)
L_LIBS += -ldl
UNIX = 1
OPENGL = 1
VULKAN = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),Windows)
WINDOWS = 1
OPENGL = 1
VULKAN = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),SunOS)
CC = gcc
UNIX = 1
L_LIBS += -lsocket -lnsl
OPENGL = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),Darwin)
CC = gcc
DARWIN = 1
L_LIBS += -framework Carbon
FOUND_PLATFORM = 1
endif
ifeq ($(FOUND_PLATFORM),0)
$(error Add your platform definition)
endif
# Standard gcc accepts this but we have to override this for Apple's gcc.
SHARED = -shared
ifeq ($(UNIX),1)
L_CFLAGS += -DUSE_X11 -DUNIX
L_OBJS += src/backend/x11.o
L_LIBS += -lm -lX11 -lXrender -lXcursor
GL = -lGL -lGLU
E_LIBS += -lm
LIB = lib
SO = .so
EXEC =
endif
ifeq ($(WINDOWS),1)
L_CFLAGS += -DUSE_GDI
L_LDFLAGS += -Wl,--out-implib,src/libMw.a -static-libgcc
L_OBJS += src/backend/gdi.o
L_LIBS += -lgdi32
GL = -lopengl32 -lglu32
LIB =
SO = .dll
EXEC = .exe
endif
ifeq ($(DARWIN),1)
L_CFLAGS += -DSTBI_NO_THREAD_LOCALS -DUSE_DARWIN
L_OBJS += src/backend/mac/mac.o src/backend/mac/carbon.o
LIB = lib
SO = .dylib
EXEC =
SHARED = -dynamiclib
endif
ifeq ($(USE_STB_IMAGE),1)
L_CFLAGS += -DUSE_STB_IMAGE
else
include external/deps.mk
endif
ifeq ($(USE_FREETYPE2),1)
L_CFLAGS += -DUSE_FREETYPE2
ifneq ($(CROSS),1)
L_CFLAGS += $(shell pkg-config --cflags freetype2)
L_LIBS += $(shell pkg-config --libs freetype2)
endif
endif
ifeq ($(USE_STB_TRUETYPE),1)
L_CFLAGS += -DUSE_STB_TRUETYPE
endif
EXAMPLES = examples/basic/example$(EXEC) examples/basic/rotate$(EXEC) examples/basic/image$(EXEC) examples/basic/scrollbar$(EXEC) examples/basic/checkbox$(EXEC) examples/basic/messagebox$(EXEC) examples/basic/viewport$(EXEC) examples/basic/listbox$(EXEC) examples/color_picker$(EXEC) EXAMPLES = examples/basic/example$(EXEC) examples/basic/rotate$(EXEC) examples/basic/image$(EXEC) examples/basic/scrollbar$(EXEC) examples/basic/checkbox$(EXEC) examples/basic/messagebox$(EXEC) examples/basic/viewport$(EXEC) examples/basic/listbox$(EXEC) examples/color_picker$(EXEC)
ifeq ($(OPENGL),1)
L_OBJS += src/widget/opengl.o
EXAMPLES += examples/gldemos/clock$(EXEC) examples/gldemos/triangle$(EXEC) examples/gldemos/gears$(EXEC) examples/gldemos/boing$(EXEC) examples/gldemos/cube$(EXEC) examples/gldemos/tripaint$(EXEC)
endif
ifeq ($(VULKAN),1)
L_OBJS += src/widget/vulkan.o
EXAMPLES += examples/vkdemos/vulkan$(EXEC)
endif
.PHONY: all install format clean lib examples .PHONY: all install format clean lib examples
all: lib examples all: lib examples

42
mk/flags.mk Normal file
View File

@@ -0,0 +1,42 @@
# $Id$
# Standard gcc accepts this but we have to override this for Apple's gcc.
SHARED = -shared
ifeq ($(UNIX),1)
L_CFLAGS += -DUSE_X11 -DUNIX
L_OBJS += src/backend/x11.o
L_LIBS += -lm -lX11 -lXrender -lXcursor
GL = -lGL -lGLU
E_LIBS += -lm
LIB = lib
SO = .so
EXEC =
endif
ifeq ($(WINDOWS),1)
L_CFLAGS += -DUSE_GDI
L_LDFLAGS += -Wl,--out-implib,src/libMw.a -static-libgcc
L_OBJS += src/backend/gdi.o
L_LIBS += -lgdi32
GL = -lopengl32 -lglu32
LIB =
SO = .dll
EXEC = .exe
endif
ifeq ($(DARWIN),1)
L_CFLAGS += -DSTBI_NO_THREAD_LOCALS -DUSE_DARWIN
L_OBJS += src/backend/mac/mac.o src/backend/mac/carbon.o
LIB = lib
SO = .dylib
EXEC =
SHARED = -dynamiclib
endif

10
mk/freetype2.mk Normal file
View File

@@ -0,0 +1,10 @@
# $Id$
ifeq ($(USE_FREETYPE2),1)
L_CFLAGS += -DUSE_FREETYPE2
ifneq ($(CROSS),1)
L_CFLAGS += $(shell pkg-config --cflags freetype2)
L_LIBS += $(shell pkg-config --libs freetype2)
endif
endif

7
mk/opengl.mk Normal file
View File

@@ -0,0 +1,7 @@
# $Id$
ifeq ($(OPENGL),1)
L_OBJS += src/widget/opengl.o
EXAMPLES += examples/gldemos/clock$(EXEC) examples/gldemos/triangle$(EXEC) examples/gldemos/gears$(EXEC) examples/gldemos/boing$(EXEC) examples/gldemos/cube$(EXEC) examples/gldemos/tripaint$(EXEC)
endif

53
mk/platform.mk Normal file
View File

@@ -0,0 +1,53 @@
# $Id$
ifeq ($(TARGET),)
TARGET = $(shell uname -s)
endif
ifneq ($(TARGET),$(shell uname -s))
CROSS = 1
endif
FOUND_PLATFORM = 0
ifeq ($(TARGET),NetBSD)
CFLAGS += -I/usr/X11R7/include -I/usr/pkg/include
LDFLAGS += -L/usr/X11R7/lib -L/usr/pkg/lib -Wl,-R/usr/X11R7/lib -Wl,-R/usr/pkg/lib
UNIX = 1
OPENGL = 1
VULKAN = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),Linux)
L_LIBS += -ldl
UNIX = 1
OPENGL = 1
VULKAN = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),Windows)
WINDOWS = 1
OPENGL = 1
VULKAN = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),SunOS)
CC = gcc
UNIX = 1
L_LIBS += -lsocket -lnsl
OPENGL = 1
FOUND_PLATFORM = 1
endif
ifeq ($(TARGET),Darwin)
CC = gcc
DARWIN = 1
L_LIBS += -framework Carbon
FOUND_PLATFORM = 1
endif
ifeq ($(FOUND_PLATFORM),0)
$(error Add your platform definition)
endif

11
mk/stb.mk Normal file
View File

@@ -0,0 +1,11 @@
# $Id$
ifeq ($(USE_STB_IMAGE),1)
L_CFLAGS += -DUSE_STB_IMAGE
else
include external/deps.mk
endif
ifeq ($(USE_STB_TRUETYPE),1)
L_CFLAGS += -DUSE_STB_TRUETYPE
endif

17
mk/vulkan.mk Normal file
View File

@@ -0,0 +1,17 @@
# $Id$
ifeq ($(TARGET),NetBSD)
VULKAN_NO_STRING_HELPER = 1
endif
ifeq ($(VULKAN_NO_STRING_HELPER),1)
VK_STRING_HELPER_DEFINE =
else
VK_STRING_HELPER_DEFINE = -DHAS_VK_ENUM_STRING_HELPER
endif
CFLAGS += $(VK_STRING_HELPER_DEFINE)
ifeq ($(VULKAN),1)
L_OBJS += src/widget/vulkan.o
EXAMPLES += examples/vkdemos/vulkan$(EXEC)
endif