# Screensaver Makefile

# Compiler
cc=gcc

# Linker
link=gcc

# Symbol Stripper
strip=strip

# Args to compiler and linker
commonargs=-Wall -Wstrict-prototypes -Wnested-externs -std=c89 -U__STRICT_ANSI__

# Args to compiler
ccargs=${commonargs} -c -I . -I ${XSCREENSAVER_HOME}/hacks -I ${XSCREENSAVER_HOME}/utils -I ${XSCREENSAVER_HOME} -I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/linux -I ${JAVA_HOME}/include/solaris -DPLATFORM_${PLATFORM} -DSTANDALONE -g -O2

# Args to linker
linkargs=${commonargs} -L/usr/local/lib -L/usr/X11R6/lib -L${JAVA_HOME}/jre/lib/i386 -L${JAVA_HOME}/jre/lib/i386/client -L${JAVA_HOME}/jre/lib/sparc -L${JAVA_HOME}/jre/lib/sparc/client -ljvm -lSM -lICE -lXt -lX11 -lXmu -lXext -lm

# Objects for linker
linkobj=${XSCREENSAVER_HOME}/hacks/screenhack.o ${XSCREENSAVER_HOME}/utils/resources.o ${XSCREENSAVER_HOME}/utils/visual.o ${XSCREENSAVER_HOME}/utils/usleep.o ${XSCREENSAVER_HOME}/utils/yarandom.o

all: checkpaths GalleryEz-bin Gallery-bin 

checkpaths:
	@if [ ! -d "${XSCREENSAVER_HOME}" ]; then \
            echo "Directory ${XSCREENSAVER_HOME} not found."; \
            echo "Please set XSCREENSAVER_HOME to the install directory "; \
            echo "for xscreensaver src."; \
            false; \
        fi;
	@if [ ! -d "${JAVA_HOME}" ]; then \
            echo "Directory ${JAVA_HOME} not found."; \
            echo "Please set JAVA_HOME to the install directory for "; \
            echo "J2SDK 1.5.0 or greater."; \
            false; \
        fi;
	@if [ "${PLATFORM}" != "Linux" ]; then \
            if [ "${PLATFORM}" != "SunOS" ]; then \
                echo Please set PLATFORM to either "Linux" or "SunOS"; \
                false; \
            fi; \
        fi;

check_install_paths:
	@if [ ! -d "${SCREENSAVER_BIN}" ]; then \
            echo "Directory ${SCREENSAVER_BIN} not found."; \
            echo "Please set SCREENSAVER_BIN to the install directory "; \
            echo "for screensavers (see README.txt)."; \
            if [ -x /usr/bin/locate ]; then \
                PROBABLE=$$(/usr/bin/locate apollonian | grep -v \\\. | awk '{system("dirname " $$1)}'); \
                if [ "x$${PROBABLE}" != "x" ]; then \
                    echo Probable locations: $${PROBABLE}; \
                fi; \
            fi; \
            false; \
        fi;
	@if [ ! -d "${SCREENSAVER_CONF}" ]; then \
            echo "Directory ${SCREENSAVER_CONF} not found."; \
            echo "Please set SCREENSAVER_CONF to the install directory for "; \
            echo "screensavers (see README.txt)."; \
            if [ -x /usr/bin/locate ]; then \
                PROBABLE=$$(/usr/bin/locate apollonian.xml | awk '{system("dirname " $$1)}'); \
                if [ "x$${PROBABLE}" != "x" ]; then \
                    echo Probable locations: $${PROBABLE}; \
                fi; \
            fi; \
            false; \
        fi;

GalleryEz-bin:
	${cc} ${ccargs} -o GalleryEz.o GalleryEz.c
	${link} ${linkargs} -o GalleryEz-bin GalleryEz.o ${linkobj}
	${strip} GalleryEz-bin
	chmod a+x GalleryEz

Gallery-bin:
	${cc} ${ccargs} -o Gallery.o Gallery.c
	${link} ${linkargs} -o Gallery-bin Gallery.o ${linkobj}
	${strip} Gallery-bin
	chmod a+x Gallery



install: check_install_paths
	install *.jar ${SCREENSAVER_BIN}
	install Gallery ${SCREENSAVER_BIN}
	install Gallery-bin ${SCREENSAVER_BIN}
	install *.xml ${SCREENSAVER_CONF}

uninstall: check_install_paths
	@for f in `ls *.jar`; do \
            if [ "$$f" != "saverbeans-api.jar" ]; then \
                rm -f ${SCREENSAVER_BIN}/$$f; \
            fi; \
	done;
	rm -f ${SCREENSAVER_BIN}/Gallery
	rm -f ${SCREENSAVER_BIN}/Gallery-bin
	@for f in `ls *.xml`; do \
            rm -f ${SCREENSAVER_BIN}/$$f; \
	done

clean:
	rm -f GalleryEz-bin Gallery-bin  *.o *.so

