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