freetype
[Top][All Lists]
Advanced

[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:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]