Change the CFLAGS variable in your Makefile to this:
Code:
Code:
CFLAGS = -Os -Wall $(MACHDEP) $(INCLUDE) --std=c99
CFLAGS = -Os -Wall $(MACHDEP) $(INCLUDE) --std=c99
#define boolean int
#define bool int
#define boolean int
#define bool int
typedef int boolean;
typedef boolean bool;
int keydownlast(int basic_keycode) {
int row, col, word, bit;
row = basic_keycode%10;
col = basic_keycode/10-1;
word = row>>1;
bit = col + 8*(row&1);
return (0 != (lastkey[word] & 1<<bit));
}
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c:105:18: warnin
g: variable 'word' set but not used [-Wunused-but-set-variable]
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c: In function '
getTextLine':
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c:156:2: warning
: implicit declaration of function 'RTC_GetTicks' [-Wimplicit-function-declarati
on]
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c:232:23: error:
'KEY_PRGM_DEL' undeclared (first use in this function)
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c:232:23: note:
each undeclared identifier is reported only once for each function it appears in
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c:252:8: warning
: implicit declaration of function '_g_strlen' [-Wimplicit-function-declaration]
$ grep -R KEY_PRGM_DEL include/
$
$ grep -R DEL include/
include/fxcg_keyboard.h:#define KEY_CTRL_DEL 30025
include/fxcg_keyboard.h:// KEY_CTRL_DEL 0x7549 (30025)
include/keyboard.hpp:#define KEY_CTRL_DEL 30025
include/keyboard.hpp:// KEY_CTRL_DEL 0x7549 (30025)
$
C:\PrizmSDK-0.3\PrizmSDK-0.3\projects\MathAdd-In>..\..\bin\make.exe
sh3eb-elf-gcc -MMD -MP -MF C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/buil
d/MathAdd-In.d -Os -Wall -mb -m4a-nofpu -mhitachi -nostdlib -IC:/PrizmSDK-0.3/
PrizmSDK-0.3/projects/MathAdd-In/build -IC:/PrizmSDK-0.3/PrizmSDK-0.3/include --
std=c99 -c C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c -o
MathAdd-In.o
sh3eb-elf-gcc MathAdd-In.o -mb -m4a-nofpu -mhitachi -nostdlib -TC:/PrizmSDK-0.3
/PrizmSDK-0.3/common/prizm.ld -Wl,-static -Wl,-gc-sections -std=c99 -LC:/PrizmS
DK-0.3/PrizmSDK-0.3/lib -lfxcg -lgcc -o C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/Ma
thAdd-In/MathAdd-In.bin
MathAdd-In.o: In function `_getTextLine':
MathAdd-In.c:(.text+0x6d4): undefined reference to `__g_strlen'
collect2: ld returned 1 exit status
make[1]: *** [C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/MathAdd-In.bin] E
rror 1
make: *** [build] Error 2
C:\PrizmSDK-0.3\PrizmSDK-0.3\projects\MathAdd-In>pause
Press any key to continue . . .
C:\PrizmSDK-0.3\PrizmSDK-0.3\projects\MathAdd-In>..\..\bin\make.exe
sh3eb-elf-gcc -MMD -MP -MF C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/buil
d/MathAdd-In.d -Os -Wall -mb -m4a-nofpu -mhitachi -nostdlib -IC:/PrizmSDK-0.3/
PrizmSDK-0.3/projects/MathAdd-In/build -IC:/PrizmSDK-0.3/PrizmSDK-0.3/include --
std=c99 -c C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c -o
MathAdd-In.o
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c: In function '
getTextLine':
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c:254:8: warning
: implicit declaration of function 'strlen' [-Wimplicit-function-declaration]
C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/src/MathAdd-In.c:254:18: warnin
g: incompatible implicit declaration of built-in function 'strlen' [enabled by d
efault]
sh3eb-elf-gcc MathAdd-In.o -mb -m4a-nofpu -mhitachi -nostdlib -TC:/PrizmSDK-0.3
/PrizmSDK-0.3/common/prizm.ld -Wl,-static -Wl,-gc-sections -std=c99 -LC:/PrizmS
DK-0.3/PrizmSDK-0.3/lib -lfxcg -lgcc -o C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/Ma
thAdd-In/MathAdd-In.bin
mkg3a -n basic:Math Add-in -i uns:../unselected.bmp -i sel:../selected.bmp C:/Pr
izmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/MathAdd-In.bin C:/PrizmSDK-0.3/Prizm
SDK-0.3/projects/MathAdd-In/MathAdd-In.g3a
Usage: mkg3a [OPTION] input-file [output-file]
-i (uns|sel):file
Load unselected/selected icon from file
-n lc:name
Set localized name for language code
-v
Show version and license information then exit
Valid values for lc are basic, internal, en, es, de, fr, pt and zh.
Empty lc is an alias for basic. Unset names will be derived from
basic, which defaults to output file name.
Multiple -n or -i options will all be applied, with the last
specified option overriding previous ones with the same key.
make[1]: *** [C:/PrizmSDK-0.3/PrizmSDK-0.3/projects/MathAdd-In/MathAdd-In.g3a] E
rror 1
make: *** [build] Error 2
C:\PrizmSDK-0.3\PrizmSDK-0.3\projects\MathAdd-In>pause
Press any key to continue . . .
unsigned int _g_strlen(char *a)
{
int ret = 0;
while(*(a++)) ret++;
return ret;
}
#---------------------------------------------------------------------------------
# Clear the implicit built in rules
#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
# Set toolchain location in an environment var for future use, this will change
# to use a system environment var in the future.
#---------------------------------------------------------------------------------
ifeq ($(strip $(FXCGSDK)),)
export FXCGSDK := $(abspath ../../)
endif
include $(FXCGSDK)/common/prizm_rules
#---------------------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
#---------------------------------------------------------------------------------
TARGET := MathAdd-In
BUILD := build
SOURCES := src
DATA := data
INCLUDES :=
#---------------------------------------------------------------------------------
# options for code and add-in generation
#---------------------------------------------------------------------------------
MKG3AFLAGS := -n basic:Math Add-in -i uns:../unselected.bmp -i sel:../selected.bmp
CFLAGS = -Os -Wall $(MACHDEP) $(INCLUDE) --std=c99
CXXFLAGS = $(CFLAGS)
LDFLAGS = $(MACHDEP) -T$(FXCGSDK)/common/prizm.ld -Wl,-static -Wl,-gc-sections -std=c99
#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBS := -lfxcg -lgcc
#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRS :=
#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------
export OUTPUT := $(CURDIR)/$(TARGET)
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
export DEPSDIR := $(CURDIR)/$(BUILD)
#---------------------------------------------------------------------------------
# automatically build a list of object files for our project
#---------------------------------------------------------------------------------
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
export LD := $(CC)
else
export LD := $(CXX)
endif
export OFILES := $(addsuffix .o,$(BINFILES)) \
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
$(sFILES:.s=.o) $(SFILES:.S=.o)
#---------------------------------------------------------------------------------
# build a list of include paths
#---------------------------------------------------------------------------------
export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-I$(CURDIR)/$(BUILD) -I$(LIBFXCG_INC)
#---------------------------------------------------------------------------------
# build a list of library paths
#---------------------------------------------------------------------------------
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
-L$(LIBFXCG_LIB)
export OUTPUT := $(CURDIR)/$(TARGET)
.PHONY: $(BUILD) clean
#---------------------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir $@
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#---------------------------------------------------------------------------------
export CYGWIN := nodosfilewarning
clean:
$(RM) -fr $(BUILD) $(OUTPUT).bin $(OUTPUT).g3a
#---------------------------------------------------------------------------------
else
DEPENDS := $(OFILES:.o=.d)
#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
$(OUTPUT).g3a: $(OUTPUT).bin
$(OUTPUT).bin: $(OFILES)
-include $(DEPENDS)
#---------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------
Advertisement