I have been trying to create a game with the eye toy, but as i am a new at creating ps2 program. do i have som problem.
the status that i am in rigth now is that i have got the ps2 cam and draw (g2) to work in different project. but when i combine the to lib, i can not get it to work. because there are a linker problem.....
the make file that i have made is like this. -----------------------------------
CC=ee-gcc
AS=ee-as
LD=ee-elf-ld
EE_INCS = -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -I$(PS2SDK)/ports -I$(PS2SDK)/ports/include
EE_BIN = Camera.elf
EE_OBJS = Camera.o
EE_LIBS = -ldraw -lgraph -lmath3d -lmf -lpacket -ldma -lc -ldebug -lmtap -lcdvd
OBJ_DIR = obj
CFLAGS = -Wall -W -EL -G0 -O0 -mips3 -nostdlib -DPS2_EE $(EE_INCS)
C_SRC = g2.c Camera.c
S_SRC = crt0.s ps2_asm.s dma_asm.s gs_asm.s
C_OBJ = $(addprefix $(OBJ_DIR)/, $(C_SRC:.c=.o))
S_OBJ = $(addprefix $(OBJ_DIR)/, $(S_SRC:.s=.o))
Camera.elf: $(C_OBJ) $(S_OBJ)
@echo "-------------------------------------------------"
$(CC) $(CFLAGS) -Tlinkfile -o Camera.elf $(C_OBJ) $(S_OBJ) -Wl,-Map,Camera.map
$(OBJ_DIR)/%.o: $(C_SRC)
@echo "-------------------------------------------------"
$(CC) -c $(CFLAGS) $< -o $@
$(OBJ_DIR)/%.o: %.s
@echo "-------------------------------------------------"
$(CC) -xassembler-with-cpp -c $(CFLAGS) $< -o $@
clean:
rm -f $(C_OBJ) $(S_OBJ) *.map *.elf *.o
run: $(EE_BIN)
ps2client -t 1 execiop host:usbd.irx
ps2client -t 1 execiop host:ps2cam.irx
ps2client execee host:Camera.elf
reset:
ps2client reset
-----------------------------------------------------------------------------------
and i get alot of linker problem but the errors that i can se i this --------
obj/Camera.o(.text+0x1010): In function `g2_set_viewport':
g2.c: multiple definition of `g2_set_viewport'
obj/g2.o(.text+0x1010):g2.c: first defined here
obj/Camera.o(.text+0x11d0): In function `g2_get_viewport':
g2.c: multiple definition of `g2_get_viewport'
obj/g2.o(.text+0x11d0):g2.c: first defined here
obj/Camera.o(.text+0x123c): In function `g2_get_max_x':
g2.c: multiple definition of `g2_get_max_x'
obj/g2.o(.text+0x123c):g2.c: first defined here
obj/Camera.o(.text+0x1260): In function `g2_get_max_y':
g2.c: multiple definition of `g2_get_max_y'
obj/g2.o(.text+0x1260):g2.c: first defined here
obj/Camera.o(.text+0x1284): In function `g2_get_color':
g2.c: multiple definition of `g2_get_color'
obj/g2.o(.text+0x1284):g2.c: first defined here
obj/Camera.o(.text+0x12dc): In function `g2_get_fill_color':
g2.c: multiple definition of `g2_get_fill_color'
obj/g2.o(.text+0x12dc):g2.c: first defined here
obj/Camera.o(.text+0x1334): In function `g2_set_color':
g2.c: multiple definition of `g2_set_color'
obj/g2.o(.text+0x1334):g2.c: first defined here
obj/Camera.o(.text+0x138c): In function `g2_set_fill_color':
g2.c: multiple definition of `g2_set_fill_color'
obj/g2.o(.text+0x138c):g2.c: first defined here
obj/crt0.o(.data+0x0): In function `g2_init':
g2.c: multiple definition of `vmodes'
obj/g2.o(.data+0x0):g2.c: first defined here
obj/crt0.o(.text+0x0): In function `g2_init':
g2.c: multiple definition of `g2_init'
obj/g2.o(.text+0x0):g2.c: first defined here
obj/crt0.o(.text+0x394): In function `g2_end':
g2.c: multiple definition of `g2_end'
obj/g2.o(.text+0x394):g2.c: first defined here
obj/crt0.o(.text+0x3bc): In function `g2_put_pixel':
g2.c: multiple definition of `g2_put_pixel'
obj/g2.o(.text+0x3bc):g2.c: first defined here
obj/crt0.o(.text+0x60c): In function `g2_line':
g2.c: multiple definition of `g2_line'
obj/g2.o(.text+0x60c):g2.c: first defined here
obj/crt0.o(.text+0x8e8): In function `g2_rect':
g2.c: multiple definition of `g2_rect'
obj/g2.o(.text+0x8e8):g2.c: first defined here
obj/crt0.o(.text+0xd2c): In function `g2_fill_rect':
g2.c: multiple definition of `g2_fill_rect'
obj/g2.o(.text+0xd2c):g2.c: first defined here
obj/crt0.o(.text+0x1010): In function `g2_set_viewport':
g2.c: multiple definition of `g2_set_viewport'
obj/g2.o(.text+0x1010):g2.c: first defined here
obj/crt0.o(.text+0x11d0): In function `g2_get_viewport':
g2.c: multiple definition of `g2_get_viewport'
obj/g2.o(.text+0x11d0):g2.c: first defined here
obj/crt0.o(.text+0x123c): In function `g2_get_max_x':
g2.c: multiple definition of `g2_get_max_x'
obj/g2.o(.text+0x123c):g2.c: first defined here
obj/crt0.o(.text+0x1260): In function `g2_get_max_y':
g2.c: multiple definition of `g2_get_max_y'
obj/g2.o(.text+0x1260):g2.c: first defined here
obj/crt0.o(.text+0x1284): In function `g2_get_color':
g2.c: multiple definition of `g2_get_color'
obj/g2.o(.text+0x1284):g2.c: first defined here
obj/crt0.o(.text+0x12dc): In function `g2_get_fill_color':
g2.c: multiple definition of `g2_get_fill_color'
obj/g2.o(.text+0x12dc):g2.c: first defined here
obj/crt0.o(.text+0x1334): In function `g2_set_color':
g2.c: multiple definition of `g2_set_color'
obj/g2.o(.text+0x1334):g2.c: first defined here
obj/crt0.o(.text+0x138c): In function `g2_set_fill_color':
g2.c: multiple definition of `g2_set_fill_color'
obj/g2.o(.text+0x138c):g2.c: first defined here
obj/ps2_asm.o(.data+0x0): In function `g2_init':
g2.c: multiple definition of `vmodes'
obj/g2.o(.data+0x0):g2.c: first defined here
obj/ps2_asm.o(.text+0x0): In function `g2_init':
g2.c: multiple definition of `g2_init'
obj/g2.o(.text+0x0):g2.c: first defined here
obj/ps2_asm.o(.text+0x394): In function `g2_end':
g2.c: multiple definition of `g2_end'
obj/g2.o(.text+0x394):g2.c: first defined here
obj/ps2_asm.o(.text+0x3bc): In function `g2_put_pixel':
g2.c: multiple definition of `g2_put_pixel'
obj/g2.o(.text+0x3bc):g2.c: first defined here
obj/ps2_asm.o(.text+0x60c): In function `g2_line':
g2.c: multiple definition of `g2_line'
obj/g2.o(.text+0x60c):g2.c: first defined here
obj/ps2_asm.o(.text+0x8e8): In function `g2_rect':
g2.c: multiple definition of `g2_rect'
obj/g2.o(.text+0x8e8):g2.c: first defined here
obj/ps2_asm.o(.text+0xd2c): In function `g2_fill_rect':
g2.c: multiple definition of `g2_fill_rect'
obj/g2.o(.text+0xd2c):g2.c: first defined here
obj/ps2_asm.o(.text+0x1010): In function `g2_set_viewport':
g2.c: multiple definition of `g2_set_viewport'
obj/g2.o(.text+0x1010):g2.c: first defined here
obj/ps2_asm.o(.text+0x11d0): In function `g2_get_viewport':
g2.c: multiple definition of `g2_get_viewport'
obj/g2.o(.text+0x11d0):g2.c: first defined here
obj/ps2_asm.o(.text+0x123c): In function `g2_get_max_x':
g2.c: multiple definition of `g2_get_max_x'
obj/g2.o(.text+0x123c):g2.c: first defined here
obj/ps2_asm.o(.text+0x1260): In function `g2_get_max_y':
g2.c: multiple definition of `g2_get_max_y'
obj/g2.o(.text+0x1260):g2.c: first defined here
obj/ps2_asm.o(.text+0x1284): In function `g2_get_color':
g2.c: multiple definition of `g2_get_color'
obj/g2.o(.text+0x1284):g2.c: first defined here
obj/ps2_asm.o(.text+0x12dc): In function `g2_get_fill_color':
g2.c: multiple definition of `g2_get_fill_color'
obj/g2.o(.text+0x12dc):g2.c: first defined here
obj/ps2_asm.o(.text+0x1334): In function `g2_set_color':
g2.c: multiple definition of `g2_set_color'
obj/g2.o(.text+0x1334):g2.c: first defined here
obj/ps2_asm.o(.text+0x138c): In function `g2_set_fill_color':
g2.c: multiple definition of `g2_set_fill_color'
obj/g2.o(.text+0x138c):g2.c: first defined here
obj/dma_asm.o(.data+0x0): In function `g2_init':
g2.c: multiple definition of `vmodes'
obj/g2.o(.data+0x0):g2.c: first defined here
obj/dma_asm.o(.text+0x0): In function `g2_init':
g2.c: multiple definition of `g2_init'
obj/g2.o(.text+0x0):g2.c: first defined here
obj/dma_asm.o(.text+0x394): In function `g2_end':
g2.c: multiple definition of `g2_end'
obj/g2.o(.text+0x394):g2.c: first defined here
obj/dma_asm.o(.text+0x3bc): In function `g2_put_pixel':
g2.c: multiple definition of `g2_put_pixel'
obj/g2.o(.text+0x3bc):g2.c: first defined here
obj/dma_asm.o(.text+0x60c): In function `g2_line':
g2.c: multiple definition of `g2_line'
obj/g2.o(.text+0x60c):g2.c: first defined here
obj/dma_asm.o(.text+0x8e8): In function `g2_rect':
g2.c: multiple definition of `g2_rect'
obj/g2.o(.text+0x8e8):g2.c: first defined here
obj/dma_asm.o(.text+0xd2c): In function `g2_fill_rect':
g2.c: multiple definition of `g2_fill_rect'
obj/g2.o(.text+0xd2c):g2.c: first defined here
obj/dma_asm.o(.text+0x1010): In function `g2_set_viewport':
g2.c: multiple definition of `g2_set_viewport'
obj/g2.o(.text+0x1010):g2.c: first defined here
obj/dma_asm.o(.text+0x11d0): In function `g2_get_viewport':
g2.c: multiple definition of `g2_get_viewport'
obj/g2.o(.text+0x11d0):g2.c: first defined here
obj/dma_asm.o(.text+0x123c): In function `g2_get_max_x':
g2.c: multiple definition of `g2_get_max_x'
obj/g2.o(.text+0x123c):g2.c: first defined here
obj/dma_asm.o(.text+0x1260): In function `g2_get_max_y':
g2.c: multiple definition of `g2_get_max_y'
obj/g2.o(.text+0x1260):g2.c: first defined here
obj/dma_asm.o(.text+0x1284): In function `g2_get_color':
g2.c: multiple definition of `g2_get_color'
obj/g2.o(.text+0x1284):g2.c: first defined here
obj/dma_asm.o(.text+0x12dc): In function `g2_get_fill_color':
g2.c: multiple definition of `g2_get_fill_color'
obj/g2.o(.text+0x12dc):g2.c: first defined here
obj/dma_asm.o(.text+0x1334): In function `g2_set_color':
g2.c: multiple definition of `g2_set_color'
obj/g2.o(.text+0x1334):g2.c: first defined here
obj/dma_asm.o(.text+0x138c): In function `g2_set_fill_color':
g2.c: multiple definition of `g2_set_fill_color'
obj/g2.o(.text+0x138c):g2.c: first defined here
obj/gs_asm.o(.data+0x0): In function `g2_init':
g2.c: multiple definition of `vmodes'
obj/g2.o(.data+0x0):g2.c: first defined here
obj/gs_asm.o(.text+0x0): In function `g2_init':
g2.c: multiple definition of `g2_init'
obj/g2.o(.text+0x0):g2.c: first defined here
obj/gs_asm.o(.text+0x394): In function `g2_end':
g2.c: multiple definition of `g2_end'
obj/g2.o(.text+0x394):g2.c: first defined here
obj/gs_asm.o(.text+0x3bc): In function `g2_put_pixel':
g2.c: multiple definition of `g2_put_pixel'
obj/g2.o(.text+0x3bc):g2.c: first defined here
obj/gs_asm.o(.text+0x60c): In function `g2_line':
g2.c: multiple definition of `g2_line'
obj/g2.o(.text+0x60c):g2.c: first defined here
obj/gs_asm.o(.text+0x8e8): In function `g2_rect':
g2.c: multiple definition of `g2_rect'
obj/g2.o(.text+0x8e8):g2.c: first defined here
obj/gs_asm.o(.text+0xd2c): In function `g2_fill_rect':
g2.c: multiple definition of `g2_fill_rect'
obj/g2.o(.text+0xd2c):g2.c: first defined here
obj/gs_asm.o(.text+0x1010): In function `g2_set_viewport':
g2.c: multiple definition of `g2_set_viewport'
obj/g2.o(.text+0x1010):g2.c: first defined here
obj/gs_asm.o(.text+0x11d0): In function `g2_get_viewport':
g2.c: multiple definition of `g2_get_viewport'
obj/g2.o(.text+0x11d0):g2.c: first defined here
obj/gs_asm.o(.text+0x123c): In function `g2_get_max_x':
g2.c: multiple definition of `g2_get_max_x'
obj/g2.o(.text+0x123c):g2.c: first defined here
obj/gs_asm.o(.text+0x1260): In function `g2_get_max_y':
g2.c: multiple definition of `g2_get_max_y'
obj/g2.o(.text+0x1260):g2.c: first defined here
obj/gs_asm.o(.text+0x1284): In function `g2_get_color':
g2.c: multiple definition of `g2_get_color'
obj/g2.o(.text+0x1284):g2.c: first defined here
obj/gs_asm.o(.text+0x12dc): In function `g2_get_fill_color':
g2.c: multiple definition of `g2_get_fill_color'
obj/g2.o(.text+0x12dc):g2.c: first defined here
obj/gs_asm.o(.text+0x1334): In function `g2_set_color':
g2.c: multiple definition of `g2_set_color'
obj/g2.o(.text+0x1334):g2.c: first defined here
obj/gs_asm.o(.text+0x138c): In function `g2_set_fill_color':
g2.c: multiple definition of `g2_set_fill_color'
obj/g2.o(.text+0x138c):g2.c: first defined here
C:\PSX\msys\1.0\local\ps2dev\ee\bin\..\lib\gcc-lib\ee\3.2.2\..\..\..\..\ee\bin\l
d.exe: warning: cannot find entry symbol _start; defaulting to 0000000000100018
obj/g2.o(.text+0x90): In function `g2_init':
g2.c: undefined reference to `dma_reset'
obj/g2.o(.text+0xa8):g2.c: undefined reference to `gs_set_imr'
obj/g2.o(.text+0xc0):g2.c: undefined reference to `gs_set_crtc'
obj/g2.o(.text+0x330):g2.c: undefined reference to `ps2_flush_cache'
obj/g2.o(.text+0x5ac): In function `g2_put_pixel':
g2.c: undefined reference to `ps2_flush_cache'
obj/g2.o(.text+0x888): In function `g2_line':
g2.c: undefined reference to `ps2_flush_cache'
obj/g2.o(.text+0xccc): In function `g2_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/g2.o(.text+0xfb0): In function `g2_fill_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/g2.o(.text+0x1170):g2.c: more undefined references to `ps2_flush_cache' foll
ow
obj/Camera.o(.text+0x90): In function `g2_init':
g2.c: undefined reference to `dma_reset'
obj/Camera.o(.text+0xa8):g2.c: undefined reference to `gs_set_imr'
obj/Camera.o(.text+0xc0):g2.c: undefined reference to `gs_set_crtc'
obj/Camera.o(.text+0x330):g2.c: undefined reference to `ps2_flush_cache'
obj/Camera.o(.text+0x5ac): In function `g2_put_pixel':
g2.c: undefined reference to `ps2_flush_cache'
obj/Camera.o(.text+0x888): In function `g2_line':
g2.c: undefined reference to `ps2_flush_cache'
obj/Camera.o(.text+0xccc): In function `g2_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/Camera.o(.text+0xfb0): In function `g2_fill_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/Camera.o(.text+0x1170):g2.c: more undefined references to `ps2_flush_cache'
follow
obj/crt0.o(.text+0x90): In function `g2_init':
g2.c: undefined reference to `dma_reset'
obj/crt0.o(.text+0xa8):g2.c: undefined reference to `gs_set_imr'
obj/crt0.o(.text+0xc0):g2.c: undefined reference to `gs_set_crtc'
obj/crt0.o(.text+0x330):g2.c: undefined reference to `ps2_flush_cache'
obj/crt0.o(.text+0x5ac): In function `g2_put_pixel':
g2.c: undefined reference to `ps2_flush_cache'
obj/crt0.o(.text+0x888): In function `g2_line':
g2.c: undefined reference to `ps2_flush_cache'
obj/crt0.o(.text+0xccc): In function `g2_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/crt0.o(.text+0xfb0): In function `g2_fill_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/crt0.o(.text+0x1170):g2.c: more undefined references to `ps2_flush_cache' fo
llow
obj/ps2_asm.o(.text+0x90): In function `g2_init':
g2.c: undefined reference to `dma_reset'
obj/ps2_asm.o(.text+0xa8):g2.c: undefined reference to `gs_set_imr'
obj/ps2_asm.o(.text+0xc0):g2.c: undefined reference to `gs_set_crtc'
obj/ps2_asm.o(.text+0x330):g2.c: undefined reference to `ps2_flush_cache'
obj/ps2_asm.o(.text+0x5ac): In function `g2_put_pixel':
g2.c: undefined reference to `ps2_flush_cache'
obj/ps2_asm.o(.text+0x888): In function `g2_line':
g2.c: undefined reference to `ps2_flush_cache'
obj/ps2_asm.o(.text+0xccc): In function `g2_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/ps2_asm.o(.text+0xfb0): In function `g2_fill_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/ps2_asm.o(.text+0x1170):g2.c: more undefined references to `ps2_flush_cache'
follow
obj/dma_asm.o(.text+0x90): In function `g2_init':
g2.c: undefined reference to `dma_reset'
obj/dma_asm.o(.text+0xa8):g2.c: undefined reference to `gs_set_imr'
obj/dma_asm.o(.text+0xc0):g2.c: undefined reference to `gs_set_crtc'
obj/dma_asm.o(.text+0x330):g2.c: undefined reference to `ps2_flush_cache'
obj/dma_asm.o(.text+0x5ac): In function `g2_put_pixel':
g2.c: undefined reference to `ps2_flush_cache'
obj/dma_asm.o(.text+0x888): In function `g2_line':
g2.c: undefined reference to `ps2_flush_cache'
obj/dma_asm.o(.text+0xccc): In function `g2_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/dma_asm.o(.text+0xfb0): In function `g2_fill_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/dma_asm.o(.text+0x1170):g2.c: more undefined references to `ps2_flush_cache'
follow
obj/gs_asm.o(.text+0x90): In function `g2_init':
g2.c: undefined reference to `dma_reset'
obj/gs_asm.o(.text+0xa8):g2.c: undefined reference to `gs_set_imr'
obj/gs_asm.o(.text+0xc0):g2.c: undefined reference to `gs_set_crtc'
obj/gs_asm.o(.text+0x330):g2.c: undefined reference to `ps2_flush_cache'
obj/gs_asm.o(.text+0x5ac): In function `g2_put_pixel':
g2.c: undefined reference to `ps2_flush_cache'
obj/gs_asm.o(.text+0x888): In function `g2_line':
g2.c: undefined reference to `ps2_flush_cache'
obj/gs_asm.o(.text+0xccc): In function `g2_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/gs_asm.o(.text+0xfb0): In function `g2_fill_rect':
g2.c: undefined reference to `ps2_flush_cache'
obj/gs_asm.o(.text+0x1170):g2.c: more undefined references to `ps2_flush_cache'
follow
make: *** [Camera.elf] Error 1
----------------------------------------------------------------------------------
i hop there is some one that can help me.... or maby have anotter idear of have to show the image on the screen
thanks
ps sorry about my bad english
Eye toy problems
Hey i have found a solution on the problem.. i modyfiede a version of the Makefile.eeglobal and the make file.
Make file -------------------------------------------------------------------
#Version 1.0 workes with multible lib group 669
EE_IRX = usbd.irx
CC=ee-gcc
AS=ee-as
LD=ee-elf-ld
EE_INCS = -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -I$(PS2SDK)/ports -I$(PS2SDK)/ports/include
EE_BIN = Camera.elf
EE_LIBS = -ldraw -lgraph -lmath3d -lmf -lpacket -ldma -lpad -lc -ldebug -lmtap -lcdvd -fileio -Tlinkfile
CFLAGS = -Wall -W -EL -G0 -O2 -D_EE -mips3 -nostdlib -DPS2_EE $(EE_INCS)
C_SRC = g2.c main.c
S_SRC = ps2_asm.s dma_asm.s gs_asm.s
all: $(EE_BIN)
ee-strip --strip-all $(EE_BIN)
clean:
rm -f $(C_OBJ) $(S_OBJ) *.map *.elf *.o
run: $(EE_BIN)
ps2client -t 1 execiop host:usbd.irx
ps2client -t 1 execiop host:ps2cam.irx
ps2client execee host:Camera.elf
reset:
ps2client reset
srun:
make clean
make reset
make
make run
include $(PS2SDK)/samples/Makefile.pref
include Makefile.eeglobal
Makefile.eeglobal ----------------------------------------------------------------
EE_INCS := -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -I$(PS2SDK)/ports -I$(PS2SDK)/ports/include -I. $(EE_INCS)
EE_CFLAGS := -D_EE -O2 -G0 -Wall $(EE_CFLAGS)
EE_CXXFLAGS := -D_EE -O2 -G0 -Wall $(EE_CXXFLAGS)
EE_LDFLAGS := -L$(PS2SDK)/ee/lib $(EE_LDFLAGS)
EE_ASFLAGS := -G0 $(EE_ASFLAGS)
EE_LIBS += -lc -lkernel
EE_C_COMPILE = $(EE_CC) $(EE_CFLAGS) $(EE_INCS)
EE_CXX_COMPILE = $(EE_CXX) $(EE_CXXFLAGS) $(EE_INCS)
C_OBJ = $(addprefix obj/, $(C_SRC:.c=.o))
S_OBJ = $(addprefix obj/, $(S_SRC:.s=.o))
obj/%.o: %.c
@echo "-------------------------------------------------"
$(CC) -c $(CFLAGS) $< -o $@
obj/%.o: %.s
@echo "-------------------------------------------------"
$(CC) -xassembler-with-cpp -c $(CFLAGS) $< -o $@
$(EE_BIN):$(C_OBJ) $(S_OBJ) $(EE_OBJS) $(PS2SDK)/ee/startup/crt0.o
$(EE_CC) -mno-crt0 -T$(PS2SDK)/ee/startup/linkfile $(EE_CFLAGS) \
-o $(EE_BIN) $(PS2SDK)/ee/startup/crt0.o $(C_OBJ) $(S_OBJ) -fileio -Tlinkfile $(EE_LDFLAGS) $(EE_LIBS)
$(EE_LIB) : $(EE_OBJS)
$(EE_AR) cru $(EE_LIB) $(EE_OBJS)
Make file -------------------------------------------------------------------
#Version 1.0 workes with multible lib group 669
EE_IRX = usbd.irx
CC=ee-gcc
AS=ee-as
LD=ee-elf-ld
EE_INCS = -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -I$(PS2SDK)/ports -I$(PS2SDK)/ports/include
EE_BIN = Camera.elf
EE_LIBS = -ldraw -lgraph -lmath3d -lmf -lpacket -ldma -lpad -lc -ldebug -lmtap -lcdvd -fileio -Tlinkfile
CFLAGS = -Wall -W -EL -G0 -O2 -D_EE -mips3 -nostdlib -DPS2_EE $(EE_INCS)
C_SRC = g2.c main.c
S_SRC = ps2_asm.s dma_asm.s gs_asm.s
all: $(EE_BIN)
ee-strip --strip-all $(EE_BIN)
clean:
rm -f $(C_OBJ) $(S_OBJ) *.map *.elf *.o
run: $(EE_BIN)
ps2client -t 1 execiop host:usbd.irx
ps2client -t 1 execiop host:ps2cam.irx
ps2client execee host:Camera.elf
reset:
ps2client reset
srun:
make clean
make reset
make
make run
include $(PS2SDK)/samples/Makefile.pref
include Makefile.eeglobal
Makefile.eeglobal ----------------------------------------------------------------
EE_INCS := -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -I$(PS2SDK)/ports -I$(PS2SDK)/ports/include -I. $(EE_INCS)
EE_CFLAGS := -D_EE -O2 -G0 -Wall $(EE_CFLAGS)
EE_CXXFLAGS := -D_EE -O2 -G0 -Wall $(EE_CXXFLAGS)
EE_LDFLAGS := -L$(PS2SDK)/ee/lib $(EE_LDFLAGS)
EE_ASFLAGS := -G0 $(EE_ASFLAGS)
EE_LIBS += -lc -lkernel
EE_C_COMPILE = $(EE_CC) $(EE_CFLAGS) $(EE_INCS)
EE_CXX_COMPILE = $(EE_CXX) $(EE_CXXFLAGS) $(EE_INCS)
C_OBJ = $(addprefix obj/, $(C_SRC:.c=.o))
S_OBJ = $(addprefix obj/, $(S_SRC:.s=.o))
obj/%.o: %.c
@echo "-------------------------------------------------"
$(CC) -c $(CFLAGS) $< -o $@
obj/%.o: %.s
@echo "-------------------------------------------------"
$(CC) -xassembler-with-cpp -c $(CFLAGS) $< -o $@
$(EE_BIN):$(C_OBJ) $(S_OBJ) $(EE_OBJS) $(PS2SDK)/ee/startup/crt0.o
$(EE_CC) -mno-crt0 -T$(PS2SDK)/ee/startup/linkfile $(EE_CFLAGS) \
-o $(EE_BIN) $(PS2SDK)/ee/startup/crt0.o $(C_OBJ) $(S_OBJ) -fileio -Tlinkfile $(EE_LDFLAGS) $(EE_LIBS)
$(EE_LIB) : $(EE_OBJS)
$(EE_AR) cru $(EE_LIB) $(EE_OBJS)