PDA

Ver la versión completa : Un makefile para gp32 lioso (ayuda con)



anibarro
11/04/2005, 17:59
Buenas aquí estoy otra vez con un problemilla con un makefile, a ver si alguien me contesta aunque sea para saludar q en mi anterior duda me quede un poco rollo autista xD
El caso es q los makefiles q he aprendido a hacer con los tutos son del estilo:


voxels: example.o Landscape.o
g++ example.o Landscape.o -o voxels -lSDL -lSDL_image
example.o: example.cpp Landscape.h
g++ -c -O6 example.cpp
Landscape.o: Landscape.cpp Landscape.h
g++ -c -O6 Landscape.cpp

Ahora quiero hacer ese mismo makefile para la GP32 y me estoy volviendo loco pq no se modificar el que viene de forma q compile bien..ademas entiendo q habra q modificar tb un archivo q hay por ahi q se llama Makedepend.
Es para compilar con gcc o g++ en cygwin y usando las librerias SDL. Con el devkitarm, cambiabas el nombre del compilador de gcc a g++ y ya funcionaba pero con esto no tengo muy claro si se podia programar en c++, pero leí por ahí q sí, así q quería probar si funcionaba.
Si alguien lo ha probado y lo tiene a mano o no le importa dedicarme un rato,el makefile q viene por defecto es:


CC = arm-elf-gcc
AS = arm-elf-as
LD = arm-elf-gcc
OBJCOPY = arm-elf-objcopy

.SFILES = crt0.s

.CFILES = gpstart.c sdltest.c

.OFILES = $(.SFILES:.s=.o) $(.CFILES:.c=.o)

CFLAGS = -Iinclude-gp32 -I. -O2 -mtune=arm920 \
-DGFXST -DGP32\
-Wuninitialized -Wno-import -Wchar-subscripts -Wformat -Wimplicit-int \
-Wimplicit-function-declaration \
-Wmultichar -Wreturn-type -Wswitch -Wunused -Wuninitialized -Wsign-compare \
-msoft-float -mthumb-interwork

LDFLAGS = -T$(LDSCRIPT) user_init.o -nostartfiles \
-lgpos -lgpsound -lgpmem -lgpgraphic -lgpfont -lSDL_mixer -lSDL_image -lSDL -lpng -ljpeg -lz -lgpstdlib -lm -lgpstdio

DEPENDFILE = Makedepend
MAPFILE = sdltest.map
TARGET_ELF = sdltest.elf
TARGET_BIN = sdltest.gxb
TARGET_FXE = sdltest.fxe
LDSCRIPT = lnkscript


$(TARGET_FXE): $(TARGET_BIN)
b2fxec $< $@

$(TARGET_BIN): $(TARGET_ELF)
$(OBJCOPY) -O binary $< $@

$(TARGET_ELF): $(.OFILES) $(DEPENDFILE)
$(LD) -o $@ $(.OFILES) $(LDFLAGS)

.PHONY: all clean depend

all: clean depend $(TARGET_BIN)

tags: $(DEPENDFILE)
ctags -e *.c *.s *.h *.S

clean:
-rm -f $(.OFILES) $(DEPENDFILE) $(MAPFILE) $(TARGET_ELF) $(TARGET_BIN) TAGS

send: $(TARGET_FXE)
gplink -c -x put $(TARGET_FXE) /GPMM

depend:
$(CC) $(CFLAGS) -M $(.CFILES) > $(DEPENDFILE)

$(DEPENDFILE):
$(CC) $(CFLAGS) -M $(.CFILES) > $(DEPENDFILE)

include $(DEPENDFILE)


Y el makedepend:


gpstart.o: gpstart.c /usr/arm-elf/include/gpdef.h \
/usr/arm-elf/include/gpos_def.h /usr/arm-elf/include/gpstdlib.h \
/usr/arm-elf/include/gpmem.h /usr/arm-elf/include/gpfont.h \
/usr/arm-elf/include/gpgraphic.h /usr/arm-elf/include/gpfont_port.h \
/usr/arm-elf/include/gpfontres.dat /usr/arm-elf/include/initval_port.h


Gracias :)

oankali
12/04/2005, 11:28
La verdad no te puedo ayudar mucho, solo decirte que en este hilo (http://www.gp32spain.com/foros/showthread.php?t=18732&page=2&pp=15) he puesto el makefile que utilizo yo para mis proyectos.
A ver si te es de alguna ayuda.

Oankali.

anibarro
12/04/2005, 20:22
gracias ^^ weeno algo he conseguido modificando ese makefile, mil cosas pq lo mio era para g++/gcc con el cygwin y sdl, ahroa compila pero no compila las funciones de los archivitos de inicio, lo de keyget y demas, sera por tener q usar c++ :( ahora a ver como paso una clase enooooorme a structs o yo que se...no se me ocurre ni como hacerlo para c :_(