
# package name
package = sdl4gcj
version = 0.0.3

# for build
srcdir = .
top_srcdir = ..

JAR= jar
AR= ar -cr
RANLIB=ranlib

CC = gcc
CXX = g++

DEFS = -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1  
OPT_FLAGS = -O2
CFLAGS = $(OPT_FLAGS) -I$(srcdir)  -Wall -I/usr/include/SDL -D_REENTRANT -DNDEBUG  

GCJ = gcj
GCJH = gcjh
JAVAC = $(GCJ) -C
JFLAGS = $(OPT_FLAGS) 
GCJFLAGS = $(OPT_FLAGS) 

EXEEXT = 

NATIVE_CLASS_JAVA_SOURCES= \
	sdl4gcj/Sys.java \
	sdl4gcj/SDLException.java \
	sdl4gcj/video/Surface.java \
	sdl4gcj/video/Screen.java \
	sdl4gcj/video/PixelFormat.java \
	sdl4gcj/video/Palette.java \
	sdl4gcj/video/VideoInfo.java \
	sdl4gcj/video/Cursor.java \
	sdl4gcj/input/Joystick.java \
	sdl4gcj/input/Keyboard.java \
	sdl4gcj/input/Mouse.java \
	sdl4gcj/cdrom/CD.java \
	sdl4gcj/event/EventManager.java \


NATIVE_CLASS_CLASSES= $(NATIVE_CLASS_JAVA_SOURCES:.java=.class)
NATIVE_CLASS_HEADERS= $(NATIVE_CLASS_JAVA_SOURCES:.java=.h)
NATIVE_CLASS_CPP_SOURCES=  $(NATIVE_CLASS_JAVA_SOURCES:.java=_native.cpp)
NATIVE_CLASS_OBJECTS=  \
	$(NATIVE_CLASS_JAVA_SOURCES:.java=.o) \
	$(NATIVE_CLASS_CPP_SOURCES:.cpp=.o) \

SOURCES= \
	sdl4gcj/SysConstants.java \
	sdl4gcj/SDLConstants.java \
	sdl4gcj/video/Color.java \
	sdl4gcj/video/Rect.java \
	sdl4gcj/video/VideoConstants.java \
	sdl4gcj/event/EventConstants.java \
	sdl4gcj/event/SDLEvent.java \
	sdl4gcj/event/ActiveEvent.java \
	sdl4gcj/event/ExposeEvent.java \
	sdl4gcj/event/JoyAxisEvent.java \
	sdl4gcj/event/JoyBallEvent.java \
	sdl4gcj/event/JoyHatEvent.java \
	sdl4gcj/event/JoyButtonEvent.java \
	sdl4gcj/event/JoyButtonDownEvent.java \
	sdl4gcj/event/JoyButtonUpEvent.java \
	sdl4gcj/event/KeyboardEvent.java \
	sdl4gcj/event/KeyboardUpEvent.java \
	sdl4gcj/event/KeyboardDownEvent.java \
	sdl4gcj/event/MouseButtonEvent.java \
	sdl4gcj/event/MouseButtonUpEvent.java \
	sdl4gcj/event/MouseButtonDownEvent.java \
	sdl4gcj/event/MouseMotionEvent.java \
	sdl4gcj/event/QuitEvent.java \
	sdl4gcj/event/ResizeEvent.java \
	sdl4gcj/event/SysWMEvent.java \
	sdl4gcj/event/UserEvent.java \
	sdl4gcj/input/JoystickConstants.java \
	sdl4gcj/input/KeyboardConstants.java \
	sdl4gcj/input/MouseConstants.java \
	sdl4gcj/cdrom/CDConstants.java \
	sdl4gcj/cdrom/CDTrack.java \

HEADERS= $(SOURCES:.java=.h)

CLASSES= $(SOURCES:.java=.class)

OBJECTS= $(CLASSES:.class=.o)


# for install
prefix = /usr/local
exec_prefix = ${prefix}
bindir = ${exec_prefix}/bin
includedir = ${prefix}/include
libdir = ${exec_prefix}/lib
datadir = ${prefix}/share
sysconfdir = ${prefix}/etc

pkgdatadir = ${prefix}/share/sdl4gcj
pkgsysconfdir = ${prefix}/etc/sdl4gcj

extdir = ${prefix}/share/java/ext

INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644

LIBRARY = lib$(package).a
JAR_FILE = $(package).jar

############################################################
# rules
############################################################
all : lib jar

lib : $(LIBRARY)

jar : $(JAR_FILE)


$(LIBRARY): classes headers objects 
	$(AR) $@ $(OBJECTS) $(NATIVE_CLASS_OBJECTS) 
	$(RANLIB) $@


$(JAR_FILE): $(NATIVE_CLASS_CLASSES) $(CLASSES)
	$(JAR) cvf $@  $(NATIVE_CLASS_CLASSES) $(CLASSES)

classes : $(CLASSES) $(NATIVE_CLASS_CLASSES)

headers : $(HEADERS) $(NATIVE_CLASS_HEADERS) 

objects : $(OBJECTS) $(NATIVE_CLASS_OBJECTS) $(HEADERS) $(NATIVE_CLASS_HEADERS) 


.SUFFIXES : .java .class .h .cpp .o

.java.class:
	$(JAVAC) $(JFLAGS) $<

.class.h: 
	$(GCJH) $(<:.class=)

.cpp.o: 
	$(CXX) $(CFLAGS) -o $@ -c $<

.java.o: 
	$(GCJ) -c $(GCJFLAGS) -o $@ $<



## install rules
install: $(LIBRARY) headers install-target-dirs
	$(INSTALL) $(LIBRARY) $(libdir)
	$(INSTALL_DATA) $(JAR_FILE) $(extdir)
	for i in $(HEADERS) $(NATIVE_CLASS_HEADERS) ; do \
		echo $$i; \
		$(INSTALL) -d $(includedir)/`dirname $$i`; \
		$(INSTALL_DATA) $$i $(includedir)/`dirname $$i`; \
	done

install-target-dirs:
	$(INSTALL) -d $(libdir)
	$(INSTALL) -d $(extdir)
	$(INSTALL) -d $(includedir)


clean :
	-rm \
	$(NATIVE_CLASS_HEADERS) \
	$(NATIVE_CLASS_CLASSES) \
	$(NATIVE_CLASS_OBJECTS) \
	$(OBJECTS) \
	$(CLASSES) \
	$(HEADERS) \
	$(LIBRARY) \
	$(JAR_FILE) \


