[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft] This is the "perfect" Makefile for FreeType library building on
From: |
Werner LEMBERG |
Subject: |
Re: [ft] This is the "perfect" Makefile for FreeType library building on an AmigaOne |
Date: |
Wed, 07 Nov 2018 14:23:52 +0100 (CET) |
> I write a "new" Makefile (freed from a lot of "brick-a-brack" and
> tested) for building FreeType Library easily on an AmigaOne (AmigaOS
> 4.1 Final Edition Update 1): attached "Makefile".
Thanks!
> It makes a "libfreetype.a" (linked with ftinit.ppc.o and
> ftsystem.ppc.o, too) static library which need to be copied to
> "SDK:local/newlib/lib". (SDK v53.30, GCC v4.2.4)
Note, however, that your Makefile isn't typical. What you provide is
an `all or nothing' approach: If, say, a developer changes a single
source file, *all* source files are re-compiled.
Attached you can find my try to improve this (due to the `FT:' in the
source file path names I can't directly test this under GNU/Linux).
> After all these, we can create an application with the following
> method without any complication:
>
> gcc sdlttf.c -o sdlttf.run -lSDL_ttf -lfreetype -lSDL
I ask you to help me further with integration into FreeType.
* There already exists `builds/amiga/makefile'. I assume that file
should be renamed. What shall I do?
* Please provide a patch for `builds/amiga/README' that explains what
your Makefile does.
* It is also necessary to enrich `Makefile' with proper comments, as
indicated in my version.
Werner
#
# Intro text.
#
#
# Copyright notice.
#
#
# Build instructions.
#
.PHONY: all assign
all: assign \
libfreetype.a
assign:
assign FT: //
CC = gcc
AR = ar
RANLIB = ranlib
DIRFLAGS = \
-Iinclude \
-IFT:src \
-IFT:include \
-ISDK:include
WARNINGS = \
-W \
-Waggregate-return \
-Wall \
-Wbad-function-cast \
-Wpointer-arith \
-Wshadow \
-Wundef \
-Wwrite-strings
OPTIONS = \
-DFT2_BUILD_LIBRARY \
-DNDEBUG \
-fno-builtin
OPTIMIZE = \
-O2 \
-finline-functions \
-fomit-frame-pointer \
-fstrength-reduce
CFLAGS = \
-mcrt=clib2 \
$(DIRFLAGS) \
$(WARNINGS) \
$(FT2FLAGS) \
$(OPTIONS) \
$(OPTIMIZE)
# We assume there aren't files with identical names to compile in VPATH.
VPATH = \
FT:src/autofit \
FT:src/base \
FT:src/bdf \
FT:src/bzip2 \
FT:src/cff \
FT:src/cache \
FT:src/gzip \
FT:src/lzw \
FT:src/otvalid \
FT:src/pcf \
FT:src/pfr \
FT:src/psaux \
FT:src/pshinter \
FT:src/psnames \
FT:src/raster \
FT:src/sfnt \
FT:src/smooth \
FT:src/truetype \
FT:src/type1 \
FT:src/cid \
FT:src/type42 \
FT:src/winfonts
%.ppc.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
ftdebugpure.ppc.o: src/base/ftdebug.c
$(CC) -c $(CFLAGS) $< -o $@
ftsystempure.ppc.o: src/base/ftsystem.c
$(CC) -c $(CFLAGS) $< -o $@
gxvalid.ppc.o: gxvalid.c
$(CC) -c $(CFLAGS) -Wno-aggregate-return $< -o $@
BASE = \
ftbase.ppc.o \
ftbbox.ppc.o \
ftbdf.ppc.o \
ftbitmap.ppc.o \
ftcid.ppc.o \
ftfstype.ppc.o \
ftgasp.ppc.o \
ftglyph.ppc.o \
ftgxval.ppc.o \
ftinit.ppc.o \
ftmm.ppc.o \
ftotval.ppc.o \
ftpatent.ppc.o \
ftpfr.ppc.o \
ftstroke.ppc.o \
ftsynth.ppc.o \
ftsystem.ppc.o \
fttype1.ppc.o \
ftwinfnt.ppc.o
DEBUG = \
ftdebug.ppc.o \
ftdebugpure.ppc.o
AFIT = autofit.ppc.o
GXV = gxvalid.ppc.o
OTV = otvalid.ppc.o
PS = \
psaux.ppc.o \
pshinter.ppc.o \
psnames.ppc.o
RASTER = \
raster.ppc.o \
smooth.ppc.o
FONTD = \
bdf.ppc.o \
cff.ppc.o \
pcf.ppc.o \
pfr.ppc.o \
truetype.ppc.o \
type1.ppc.o \
type1cid.ppc.o \
type42.ppc.o \
winfnt.ppc.o
OTHER = \
ftcache.ppc.o \
ftgzip.ppc.o \
ftlzw.ppc.o \
sfnt.ppc.o
# Add $(DEBUG) to the list of requisites if you want debugging output.
libfreetype.a: \
$(BASE) \
$(AFIT) \
$(GXV) \
$(OTV) \
$(PS) \
$(RASTER) \
$(FONTD) \
$(OTHER)
$(AR) r $@ $^
$(RANLIB) $@
# Local Variables:
# coding: utf-8
# End: