Jason
PkPower déjame poner tildes en mi nick ¬¬
Hola!
Trabajando en mi proyecto más de una vez me he topado con bugs que se solucionan luego de hacer "make clean", pero es un rollo increíble tener que esperar a que recompilen todas las imágenes, por lo que traigo este tutorial.
Como requisito, tutorial de Lunos de introducción a pokéruby.
Makefile
Cuando compilamos C, una de las formas que usamos es
Directo en la consola, eso crea un archivo ejecutable "ej.exe" a partir del archivo "ej.c".
Para compilaciones más complejas usualmente se automatiza con un archivo Makefile, al que le damos todos los parámetros para las opciones de la configuración que queramos.
En el Makefile creamos ciertos "patrones", por ejemplo:
Que ejecutará
(con el valor de $(ROM) correspondiente)
y luego el if que allí aparece.
A lo que venimos.
Queremos crear un nuevo "patrón" de compilación para que "make clean" no elimine todas las cosas de los gráficos, entonces, si clean es
Crearemos un "weak clean", "wclean" abajo de este.
Ahora a probarlo.
Tras haber guardado, compilamos la rom como siempre, y luego hacemos:
Y funciona
Trabajando en mi proyecto más de una vez me he topado con bugs que se solucionan luego de hacer "make clean", pero es un rollo increíble tener que esperar a que recompilen todas las imágenes, por lo que traigo este tutorial.
Como requisito, tutorial de Lunos de introducción a pokéruby.
Makefile
Cuando compilamos C, una de las formas que usamos es
Código:
gcc -o exe ej.c
".c" es la extensión típica de los archivos de código del lenguaje C, al igual como en python tenemos los ".py" y en javascript los ".js".
Para compilaciones más complejas usualmente se automatiza con un archivo Makefile, al que le damos todos los parámetros para las opciones de la configuración que queramos.
En el Makefile creamos ciertos "patrones", por ejemplo:
Código:
all: $(ROM)
ifeq ($(COMPARE),1)
@$(SHA1SUM) $(BUILD_NAME).sha1
endif
Código:
make $(ROM)
y luego el if que allí aparece.
A lo que venimos.
Queremos crear un nuevo "patrón" de compilación para que "make clean" no elimine todas las cosas de los gráficos, entonces, si clean es
Código:
clean: tidy
find sound/direct_sound_samples \( -iname '*.bin' \) -exec rm {} +
$(RM) $(ALL_OBJECTS)
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' \) -exec rm {} +
$(MAKE) clean -C tools/gbagfx
$(MAKE) clean -C tools/scaninc
$(MAKE) clean -C tools/preproc
$(MAKE) clean -C tools/bin2c
$(MAKE) clean -C tools/rsfont
$(MAKE) clean -C tools/aif2pcm
$(MAKE) clean -C tools/ramscrgen
$(MAKE) clean -C tools/gbafix
Código:
wclean: tidy
find sound/direct_sound_samples \( -iname '*.bin' \) -exec rm {} +
$(RM) $(ALL_OBJECTS)
$(MAKE) clean -C tools/gbagfx
$(MAKE) clean -C tools/scaninc
$(MAKE) clean -C tools/preproc
$(MAKE) clean -C tools/bin2c
$(MAKE) clean -C tools/rsfont
$(MAKE) clean -C tools/aif2pcm
$(MAKE) clean -C tools/ramscrgen
$(MAKE) clean -C tools/gbafix
Ahora a probarlo.
Tras haber guardado, compilamos la rom como siempre, y luego hacemos:
Código:
make wclean