Some major improvements were required to the Makefile to:
- compile the demonstration programs in any directory, by using the "TOP" and "CONFIG_MK" environment variables - the graphics drivers have moved from "demos/config/*" to "demos/graph/*" - brain-dead compilers like LCC-Win32 required some changes in the way executables are linked
This commit is contained in:
parent
7dff772e59
commit
14954e6bc2
108
demos/Makefile
108
demos/Makefile
|
@ -5,9 +5,25 @@ all: exes
|
||||||
# TOP is the directory where the main FreeType source is found,
|
# TOP is the directory where the main FreeType source is found,
|
||||||
# as well as the 'config.mk' file
|
# as well as the 'config.mk' file
|
||||||
#
|
#
|
||||||
|
# TOP2 is the directory is the top of the demonstration
|
||||||
|
# programs directory
|
||||||
|
#
|
||||||
|
|
||||||
ifndef TOP
|
ifndef TOP
|
||||||
TOP := ..
|
TOP := ..
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef TOP2
|
||||||
|
TOP2 := $(TOP)/demos
|
||||||
|
endif
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# MY_CONFIG_MK points to the current "config.mk" to use. It is
|
||||||
|
# defined by default as $(TOP)/config.mk
|
||||||
|
#
|
||||||
|
ifndef CONFIG_MK
|
||||||
|
CONFIG_MK := $(TOP)/config.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
|
@ -15,15 +31,15 @@ endif
|
||||||
# Check that we have a working `config.mk' in the above directory.
|
# Check that we have a working `config.mk' in the above directory.
|
||||||
# If not, issue a warning message, then stop there..
|
# If not, issue a warning message, then stop there..
|
||||||
#
|
#
|
||||||
ifeq ($(wildcard $(TOP)/config.mk),)
|
ifeq ($wildcard $(CONFIG_MK),)
|
||||||
no_config_mk := 1
|
no_config_mk := 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef no_config_mk
|
ifdef no_config_mk
|
||||||
exes:
|
exes:
|
||||||
@echo Please compile the library before the demo programs!
|
@echo Please compile the library before the demo programs!
|
||||||
clean distclean:
|
@echo I need "$(TOP)/config.mk" to do that !!
|
||||||
@echo "I need \`../config.mk' to do that!"
|
|
||||||
else
|
else
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
|
@ -31,7 +47,7 @@ else
|
||||||
# Good, now include the `config.mk' in order to know how to build
|
# Good, now include the `config.mk' in order to know how to build
|
||||||
# object files from sources, as well as other things (compiler flags)
|
# object files from sources, as well as other things (compiler flags)
|
||||||
#
|
#
|
||||||
include ../config.mk
|
include $(CONFIG_MK)
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
#
|
#
|
||||||
|
@ -79,35 +95,55 @@ endif
|
||||||
|
|
||||||
ifdef DOSLIKE
|
ifdef DOSLIKE
|
||||||
clean_demo:
|
clean_demo:
|
||||||
-del obj\*.$O
|
-del obj\*.$O 2> nul
|
||||||
-del src\*.bak
|
-del $(subst /,\,$(TOP2))\src\*.bak 2> nul
|
||||||
|
|
||||||
distclean_demo: clean_demo
|
distclean_demo: clean_demo
|
||||||
-del obj\*.*
|
-del obj\*.lib 2> nul
|
||||||
-del bin\*.exe
|
-del bin\*.exe 2> nul
|
||||||
else
|
else
|
||||||
|
|
||||||
clean_demo:
|
clean_demo:
|
||||||
-$(DELETE) $(OBJ_)*.$O
|
-$(DELETE) $(OBJ_)*.$O
|
||||||
-$(DELETE) $(SRC_)*.bak graph$(SEP)*.bak
|
-$(DELETE) $(SRC_)*.bak graph$(SEP)*.bak
|
||||||
-$(DELETE) $(SRC_)*~ graph$(SEP)*~
|
-$(DELETE) $(SRC_)*~ graph$(SEP)*~
|
||||||
|
|
||||||
distclean_demo: clean_demo
|
distclean_demo: clean_demo
|
||||||
-$(DELETE) $(EXES:%=$(BIN_)%)
|
-$(DELETE) $(EXES:%=$(BIN_)%$E)
|
||||||
-$(DELETE) $(GRAPH_LIB)
|
-$(DELETE) $(GRAPH_LIB)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
clean: clean_demo
|
clean: clean_demo
|
||||||
distclean: distclean_demo
|
distclean: distclean_demo
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
#
|
||||||
|
# Define a few important variables now
|
||||||
|
#
|
||||||
|
#
|
||||||
|
TOP_ := $(TOP)$(SEP)
|
||||||
|
TOP2_ := $(TOP2)$(SEP)
|
||||||
|
SRC_ := $(TOP)$(SEP)src$(SEP)
|
||||||
|
|
||||||
FT_INCLUDES := $(BUILD) $(TOP_)include $(SRC_)base
|
BIN_ := bin$(SEP)
|
||||||
|
OBJ_ := obj$(SEP)
|
||||||
|
|
||||||
|
GRAPH_DIR := $(TOP2_)graph
|
||||||
|
|
||||||
|
SRC_DIR := $(TOP2_)src
|
||||||
|
SRC_DIR_ := $(SRC_DIR)$(SEP)
|
||||||
|
|
||||||
|
|
||||||
|
FT_INCLUDES := $(BUILD) $(TOP_)include $(SRC_)base $(SRC_DIR)
|
||||||
TT_INCLUDES := $(SRC_)shared $(SRC_)truetype
|
TT_INCLUDES := $(SRC_)shared $(SRC_)truetype
|
||||||
T1_INCLUDES := $(SRC_)shared $(SRC_)type1
|
T1_INCLUDES := $(SRC_)shared $(SRC_)type1
|
||||||
|
|
||||||
CFLAGS = -c -O0 -g $(INCLUDES:%=$I%) -Wall -W -ansi
|
COMPILE = $(CC) $(CFLAGS) $(INCLUDES:%=$I%)
|
||||||
CC := $(CC)
|
LINK := $(CC)
|
||||||
LINK := $(CC)
|
FTLIB := $(TOP_)$(LIB_DIR)$(SEP)$(LIBRARY).$A
|
||||||
FTLIB := $(LIB_DIR)$(SEP)$(LIBRARY).$A
|
|
||||||
|
|
||||||
|
LINK = $(CC) $(LINKT)$@ $< $(FTLIB) $(EFENCE)
|
||||||
|
COMMON_LINK = $(COMMON_OBJ)
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
#
|
#
|
||||||
|
@ -140,28 +176,33 @@ INCLUDES := $(FT_INCLUDES)
|
||||||
# Rules for compiling object files for text-only demos
|
# Rules for compiling object files for text-only demos
|
||||||
#
|
#
|
||||||
|
|
||||||
COMMON_OBJ := $(OBJ_)common.o
|
COMMON_OBJ := $(OBJ_)common.$O
|
||||||
$(COMMON_OBJ): $(SRC_DIR_)common.c
|
$(COMMON_OBJ): $(SRC_DIR_)common.c
|
||||||
$(CC) $(CFLAGS) $T$@ $<
|
ifdef DOSLIKE
|
||||||
|
$(COMPILE) $T$@ $< $DEXPAND_WILDCARDS
|
||||||
|
else
|
||||||
|
$(COMPILE) $T$@ $<
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
$(OBJ_)%.$O: $(SRC_DIR_)%.c $(FTLIB)
|
$(OBJ_)%.$O: $(SRC_DIR_)%.c $(FTLIB)
|
||||||
$(CC) $(CFLAGS) $T$@ $<
|
$(COMPILE) $T$@ $<
|
||||||
|
|
||||||
$(OBJ_)ftlint.$O: $(SRC_DIR_)ftlint.c
|
$(OBJ_)ftlint.$O: $(SRC_DIR_)ftlint.c
|
||||||
$(CC) $(CFLAGS) $T$@ $<
|
$(COMPILE) $T$@ $<
|
||||||
|
|
||||||
$(OBJ_)fttry.$O: $(SRC_DIR_)fttry.c
|
$(OBJ_)fttry.$O: $(SRC_DIR_)fttry.c
|
||||||
$(CC) $(CFLAGS) $T$@ $<
|
$(COMPILE) $T$@ $<
|
||||||
|
|
||||||
|
|
||||||
$(OBJ_)ftview.$O: $(SRC_DIR_)ftview.c $(GRAPH_LIB)
|
$(OBJ_)ftview.$O: $(SRC_DIR_)ftview.c $(GRAPH_LIB)
|
||||||
$(CC) $(CFLAGS) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
|
$(COMPILE) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
|
||||||
|
|
||||||
$(OBJ_)fttimer.$O: $(SRC_DIR_)fttimer.c $(GRAPH_LIB)
|
$(OBJ_)fttimer.$O: $(SRC_DIR_)fttimer.c $(GRAPH_LIB)
|
||||||
$(CC) $(CFLAGS) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
|
$(COMPILE) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
|
||||||
|
|
||||||
#$(OBJ_)ftsbit.$O: $(SRC_DIR)/ftsbit.c $(GRAPH_LIB)
|
#$(OBJ_)ftsbit.$O: $(SRC_DIR)/ftsbit.c $(GRAPH_LIB)
|
||||||
# $(CC) $(CFLAGS) $T$@ $<
|
# $(COMPILE) $T$@ $<
|
||||||
|
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
|
@ -170,7 +211,7 @@ $(OBJ_)fttimer.$O: $(SRC_DIR_)fttimer.c $(GRAPH_LIB)
|
||||||
# the Type1 source path
|
# the Type1 source path
|
||||||
#
|
#
|
||||||
$(OBJ_)t1dump.$O: $(SRC_DIR)/t1dump.c
|
$(OBJ_)t1dump.$O: $(SRC_DIR)/t1dump.c
|
||||||
$(CC) $(CFLAGS) $(T1_INCLUDES:%=$I%) $T$@ $<
|
$(COMPILE) $(T1_INCLUDES:%=$I%) $T$@ $<
|
||||||
|
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
|
@ -188,7 +229,7 @@ EXTRAFLAGS = $DUNIX $DHAVE_POSIX_TERMIOS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(OBJ_)ttdebug.$O: $(SRC_DIR)/ttdebug.c
|
$(OBJ_)ttdebug.$O: $(SRC_DIR)/ttdebug.c
|
||||||
$(CC) $(CFLAGS) $(TT_INCLUDES:%=$I%) $T$@ $< $(EXTRAFLAGS)
|
$(COMPILE) $(TT_INCLUDES:%=$I%) $T$@ $< $(EXTRAFLAGS)
|
||||||
|
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
|
@ -197,29 +238,30 @@ $(OBJ_)ttdebug.$O: $(SRC_DIR)/ttdebug.c
|
||||||
# over-ridden by system-specific things..
|
# over-ridden by system-specific things..
|
||||||
#
|
#
|
||||||
|
|
||||||
$(BIN_)ftlint$E: $(OBJ_)ftlint.$O $(FTLIB)
|
$(BIN_)ftlint$E: $(OBJ_)ftlint.$O $(FTLIB) $(COMMON_OBJ)
|
||||||
$(LINK) $(LFLAGS) $T$@ $< $(FTLIB) $(EFENCE)
|
$(COMMON_LINK)
|
||||||
|
|
||||||
|
|
||||||
$(BIN_)fttry$E: $(OBJ_)fttry.$O $(FTLIB)
|
$(BIN_)fttry$E: $(OBJ_)fttry.$O $(FTLIB)
|
||||||
$(LINK) $(LFLAGS) $T$@ $< $(FTLIB) $(EFENCE)
|
$(LINK)
|
||||||
|
|
||||||
|
|
||||||
$(BIN_)ftsbit$E: $(OBJ_)ftsbit.$O $(FTLIB)
|
$(BIN_)ftsbit$E: $(OBJ_)ftsbit.$O $(FTLIB)
|
||||||
$(LINK) $(LFLAGS) $T$@ $< $(FTLIB) $(EFENCE)
|
$(LINK)
|
||||||
|
|
||||||
|
|
||||||
$(BIN_)t1dump$E: $(OBJ_)t1dump.$O $(FTLIB)
|
$(BIN_)t1dump$E: $(OBJ_)t1dump.$O $(FTLIB)
|
||||||
$(LINK) $(LFLAGS) $T$@ $< $(FTLIB) $(EFENCE)
|
$(LINK)
|
||||||
|
|
||||||
$(BIN_)ttdebug$E: $(OBJ_)ttdebug.$O $(FTLIB)
|
$(BIN_)ttdebug$E: $(OBJ_)ttdebug.$O $(FTLIB)
|
||||||
$(LINK) $(LFLAGS) $T$@ $< $(FTLIB) $(EFENCE)
|
$(LINK)
|
||||||
|
|
||||||
|
|
||||||
$(BIN_)ftview$E: $(OBJ_)ftview.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
|
$(BIN_)ftview$E: $(OBJ_)ftview.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
|
||||||
$(LINK) $(LFLAGS) $T$@ $< $(FTLIB) $(GRAPH_LINK) $(COMMON_OBJ) $(EFENCE)
|
$(GRAPH_LINK)
|
||||||
|
|
||||||
$(BIN_)fttimer$E: $(OBJ_)fttimer.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
|
$(BIN_)fttimer$E: $(OBJ_)fttimer.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
|
||||||
$(LINK) $(LFLAGS) $T$@ $< $(FTLIB) $(GRAPH_LINK) $(EFENCE)
|
$(GRAPH_LINK)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue