
Iniciado por
Uncanny
Ahi está, con un par de... narices xD. Si lo dominas y tienes tiempo pegaría y se agradecería tela si hicieras una especie de mini-tutorial introductorio a la creación de Makefiles para los que estamos menos duchos en el tema que me temo que no somos pocos (por pedir que no quede xD).
[...]
Ahí tenéis el Makefile de mi juego Pyramids 2.
Código:
# Core Makefile for GP32 development using GCC
# Written 2002 by Christian Nowak <chnowak@web.de>
# Patched 2004 by DJWillis for GamePark SDK project
# compatability for newer GCC's using Patched GameParkSDK
# Modified by Oankali
# Version 3.0
# File Name
TARGET = Pyramid2
# gpSDK root directory
GPSDK = C:/devkitARM/gamepark_sdk
.CFILES = $(GPSDK)/gpstart.c \
gpmain.c project.c bitmaps.c bitmapsGame.c fonts.c sounds.c musics.c \
transitions.c titleScreen.c mainMenu.c highScores.c credits.c \
music.c story.c options.c game.c \
../include/global.c ../include/clock.c ../include/graphics16.c \
../include/okf.c ../include/list.c ../include/riff.c \
../include/folder.c ../include/fileSelector.c ../include/math.c
.SFILES =
OBJS = $(.SFILES:.s=.o) $(.CFILES:.c=.o) \
../libmodplay/libmodplay.a
# GCC Tool-chain
CC = arm-elf-gcc
CXX = arm-elf-g++
LD = arm-elf-gcc
AS = arm-elf-as
OBJCOPY = arm-elf-objcopy
CFLAGS = -marm \
-march=armv4t \
-mapcs \
-O2 \
-fomit-frame-pointer \
-finline-functions \
-fshort-enums \
-ffast-math \
-fshort-double \
-mstructure-size-boundary=8 \
-mno-thumb-interwork \
-Wno-multichar \
-I$(GPSDK)/include \
-I.
LIBDIRS = -L$(GPSDK)/lib
GP_LIBS = -lgpgraphic -lgpgraphic16 -lgpmem -lgpos -lgpstdlib -lgpstdio -lgpsound -lgpg_ex01 -lgpfont -lgpfont16
LIBS = -lm -lc
LDFLAGS = $(LDSPECS) \
-Wl,-Map,$(MAPFILE) \
$(LIBDIRS) \
$(GP_LIBS) \
$(LIBS)
LDSPECS = -specs=gp32_gpsdk.specs
LINK = $(LD) -o $(GP_OBJS) $@ $^ $(LDFLAGS)
# Outputs
ELF = $(TARGET).elf
MAPFILE = $(TARGET).map
BIN = $(TARGET).gxb
FXE = $(TARGET).fxe
.PHONY: all clean depend
all: $(BIN)
clean: rm -f $(OBJS) $(MAPFILE) $(BIN) $(ELF) $(FXE)
$(ELF): $(OBJS)
$(LINK)
$(BIN): $(ELF)
$(OBJCOPY) -O binary $< $@
Utilizo el mismo para todos mis proyectos.
Lo único que hago és:
- Poner en TARGET el nombre del archivo .gxb a generar (8 letras max.)
- Poner en .CFILES cada archivo .C a compilar
- Poner en OBJS las librerías compiladas (en este caso libmodplay de CHN)
- Si tuviera archivos en ensamblador, los pondría en .SFILES
Este Makefile me genera el .gxb que pruebo con el Geepee32. Si todo va bien entonces utilizo un .bat para genere el .fxe con b2fxec.exe.
Oankali.
Marcadores