Page 1 of 1

Eye toy problems

Posted: Mon May 04, 2009 4:41 am
by UH
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

Posted: Mon May 04, 2009 11:06 pm
by UH
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)