[EMAIL PROTECTED] wrote:
> 
> Hi Peter:
> 
>         I grabbed the .tgz from the second URL you gave.  It seems there may be
> a file missing from the distribution.  When I try to "make all" on a
> Solaris 7 machine, it fails with the error "...don't know how to make
> 'clean-java-class'".  There is not a file named "clean-java-class.sh" in
> the distribution I have.  Could you please help me out with this, or
> point towards help?
> 
> Thanks,
> 
> Eric
> 
> Peter Pilgrim wrote:
> >
> > ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE
> > =======================================================================
> >
> > Xenonsoft, South London, England is very pleased to announce the
> > availability of:
> >
> >     Humanoid, version 0.3.0
> >

Whoops!

I did upload a new distribution
`http:www.xenonsoft.demon.co.uk/humanoid/humanoid.html'
last night and still managed to screw up.

The `Makefile' was broken and the `clean-java-class' script was still 
missing!! 

Look the top dir for the files`humanoid.jar' and `humanoid.html' 
already in the distribution ( this is true, if you haven't done 
`make clean'!). Simply type `appletviewer humanoid.html' 
and there she blows.

Actually you can substitute the shell command
`find . -name "*.class" | xargs /bin/rm -f ' to stand in for the 
clean up java classes script.

These scripts of mine are just utility things that I wrote for 
UNIX/LINUX. For example `rm -f ${JAVA_CLASSES}' in a Makefile wont 
work for inner classes like `Outer$Inner.class' because you are NOT 
suppose to know about the implementation of inner classes 
in Makefile. Writing dependencies for inner classes in Makefile
is NOT RECOMMENDED. The implementation of inner classes 
should really be transparent. However everyone knows what they are 
when they see `$' in the class file name!

I have attached the new `Makefile', `clean-java-class.sh' and 
last nights `ANNOUNCE', which I haven't bothered to post to any 
Java newsgroup, thanks to you. 
Meanwhile I will try to chase up the Demon FTP people.

-- 

Cheers
Peter

-----------------------------------------------------------------
import std.Disclaimer;          // More Java for your Lava, Mate.
"Old Trafford, the theatre of dreams (that finally came true)."

clean-java-class.sh

ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  ANNOUNCE  
================================================================================

Xenonsoft, South London, England is very pleased to announce the
availability of:


    Humanoid, version 0.3.1


`Humanoid' is an arcade video game, written entirely in Java. Software is a
clone of the Williams game "Defender". The software is open source and is
distributed "as free software.". Please read the LICENSE*.


The `Humanoid' software can be obtain from 
`http://www.xenonsoft.demon.co.uk/humanoid/humanoid.html'

You might also find it on Demon Internet FTP 
`ftp://ftp.demon.net/pub/java'
when they get around to uploading to their site (sigh).



The software requires the Java Development Kit minimum version 1.1.4.

For installation instructions read the `INSTALL' file.

It may also be worth reading the `PROBLEMS' file if you have trouble.

The `Humanoid' is available as free software under the license
agreement ("the XPeL") that is compatible with the open source model. This
means that the software will remain free forever more. 


FEATURES
=========

o       Pure Java
o       All the classic enemies there `Landers', `Mutants', `Baiters', 
        `Bombers', `Pods', and those dreadful `Swarmers'.
o       Humans and planetoid restored every 5th wave.
o       Planetoid explosion
o       Smart Bombs
o       Hyperspace jump
o       Bonus starship and smartbomb every 10,000 points
o       Ability to run as a application or an applet.
        (applet runs great with Netscape 4.51 no problem).
o       Implementation of the finer points of the original game are based
        on "The Winners' Book of Winner Kubey" written by Craig Kubey
        published by Star ca 1982
o       Features the `gamekit' video game engine.
o       Features the `soundkit' sound clip rendering engine.
o       An easy to use audio rendering engine based on the BASIC 
        command that were implemented on BBC Microcomputer. 
        `SOUND' and `ENVELOPE' statements in Java.


RUNNING
========

To run the application on UNIX simple type

        % Humanoid

Window NT users can double-click on the `Humanoid.bat' batch file to start
the Humanoid. You may have to edit the `Humanoid.bat' with notepad or
winpad to fix the classpath and location of the `humanoid.jar'

To run the game as an applet simply copy the HTML file `humanoid.html' and
`humanoid.jar' to the webserver root directory or a local file store.


BONUS
======

Try out the enhanced BBC Microcomputer like sound rendering engine. 
There is an test harness application called `GuiTestSound' which
requires the Swing/Java Foundation Classes. If you have JRE 1.2 then you
will be fine, otherwise you need to download the JFC from the Java Home
Page at `http://java.sun.com/products/jfc/'.

To run the test harness on UNIX type the command:

        % GuiTestSound

On Windows NT double click on the `GuiTestSound.bat' script.  You may have
to edit the batch `GuiTestSound.bat' script to change the classpath setting.


BUGETTES
=========

On rare occasions the infamous `ScreenUpdater' bug rears its ugly head.  In
the JDK 1.1 the AWT key event handling is broken sometimes. You can press
the shift [THRUST] and `A' [UP]a nd `Z' [DOWN] at the sametime.  However
under Window NT/JDK 1.2.1 the problem seems to have been fixed.


Enjoy baby bop.


Peter A. Pilgrim
Member of the Association of C/C++ User group UK. <http://www.accu.org/>
Mon Jun 28 00:25:59 BST 1999



;;; Emacs File Variables
;;; ------------------------------------------------------------
;;; Local Variables: ***
;;; mode:Indented-Text ***
;;; fill-column:75 ***
;;; End: ***
# File:`Makefile'
#
# DESCRIPTION
# 
# 
# Peter Pilgrim
# Tue Jun 01 01:53:22 BST 1999
# 
# RCS HEADER ``Makefile''
# 
# $Author: pilgpe $
# $Date: 1998/01/16 18:41:08 $
# $Source: /home/pilgpe/Projects/SDOSR/RCS/Makefile,v $
# $Revision: 1.3 $    $State: Exp $    $Locker:  $
#
# --------------------------------------------------------------------------------
# History:
#       $Log: Makefile,v $
#
#


# ********************************************************************************
# Where do want to install the stuff!
# ********************************************************************************

#PREFIX                 = /usr/local/UNKNOWN

PREFIX          = $(HOME)
EXEC_PREFIX     = $(PREFIX)/bin

# What are this system's bootstrap flags for compilation ...
# This is `SunOS' make specific, not portable
# BOOTSTRAPFLAGS:sh= case `uname -r` in \
#                 4*)   echo "-Dsparc -Dsun -D__SUNOS__" ;; \
#                 5*)   echo "-Dsparc -Dsun -D__SOLARIS__" ;; \
#                 *)    echo "__UNKNOWN__" ;;\
#         esac
BOOTSTRAPFLAGS  = -Dsparc -Dsun -D__SOLARIS__

# Rest of the hierarchy
# The specify the binary directories etc.
BINDIR          = $(EXEC_PREFIX)/bin
LIBDIR          = $(EXEC_PREFIX)/lib
MANDIR          = $(PREFIX)/man
DOCDIR          = $(PREFIX)/doc


# The source directory
SRCDIR          = `pwd`

#
# Makew Java interpreter run-time stub from class file.
#
MAKE_JRT_STUB           = make-jrt-stub
MAKE_JRT_STUB_FLAGS     = --verbose

#
# Make HTML Applet from Java Class file
#
MAKE_APPLET             = make-applet
MAKE_APPLET_FLAGS       = --verbose

#
# Java Compiler
#
JAVAC           = javac
JAVAC_CLASSPATH = 
JAVAC_OPTIONS   = -deprecation -g
JAVAC_FLAGS     = $(JAVAC_CLASSPATH) $(JAVAC_OPTIONS)

# Rule to build java class

#
# Compiler to use
#
# CC            = cc
# CC_LINKER     = cc
CC              = gcc
CC_LINKER       = gcc

# Specify any include paths for the C compiler
INCLUDES        = -I.
SYS_INCLUDES    = -I$(SUMMITROOT)/include -I$(SYBASE)/include
# Specify any libraries paths for the C compiler/Linker
SYS_LIBRARIES   = -lnsl -ldl -lsunmath -lsocket -lrwtool -lsybdb -lm -lC

# CFLAGS                = -g -ansi
CDEBUGFLAGS     = 
DEFINES         = 
COPTIONS        = 
CFLAGS          = $(COPTIONS) $(CDEBUGFLAGS) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES)

## BOOTSTRAPFLAGS       = -Dsparc -Dsun -Dunix 
CPPFLAGS        = $(BOOTSTRAPFLAGS)

#
# System Specific Dependent Items
#
RM              = /bin/rm -f
MAKE            = make
MKDIR           = mkdir
MKDIRHIER       = mkdirhier
RMDIR           = rmdir
LN              = ln -s
CHMOD           = chmod
CP              = cp
MV              = mv

BSDINSTALL      = 
INSTALL         = bsdinstall
INSTALLFLAGS    = -c
INSTBINFLAGS    = -m 755
INSTDATFLAGS    = -m 444



# What is the name of the new file being packed
# WARNING: A percent make macro is used protect SCCS from corrupted
# date-stamped tar filename. *PP*
PERCENT         = %
PACKAGE_VERSION = `cat appversion`

# PACK_TAR_FILE = humanoid-$(PACKAGE_VERSION).tar
PACK_TAR_FILE   = humanoid-$(PACKAGE_VERSION)-`date 
"+$(PERCENT)Y$(PERCENT)m$(PERCENT)d"`.src.tar
RELEASE_TAR_FILE= humanoid-$(PACKAGE_VERSION).tar

TAR             = tar
MAKEJAR         = make-jar
TARBACKUP       = tarbackup
TARBACKUP_FLAGS = --verbose --normal --gzip

THISMAKEFILE    = Makefile

#
# Setup sed commands and macro to auto-magically configure the stub
# scripts on sunos/solaris systems.
#
THISUSER=`logname`
THISHOST=`hostname`
THISDATE=`date`

SED             = sed
SED_ARGUMENTS = -e "s!+HOSTNAME+!$(THISHOST)!g" -e "s!+LOGNAME+!$(THISUSER)!g" \
                -e "s!+DATE+!$(THISDATE)!g" \

# ********************************************************************************
# Specify What To Build
# ********************************************************************************

# Targets to build
TARGETS  =  Humanoid Landscape  TestSound  GuiTestSound

# Java Classes
JCLASSES = $(JCLSS1) $(JCLSS2) $(JCLSS3) $(JCLSS4) $(JCLSS5)  
# Java SOURCE FILE
JSOURCES = $(JSRCS1) $(JSRCS2) $(JSRCS3) $(JSRCS4) $(JCRCS5)  


# **** Java Program 1 ****
JCLSS1  = xenon/humanoid/Landscape.class

JSRCS1  = xenon/humanoid/Landscape.java


# **** Java Program 2 ****
JCLSS2  = \
        xenon/soundkit/TestSound.class \
        xenon/soundkit/PPMCAudioPlayer.class \
        xenon/soundkit/SoundEngine.class \
        xenon/soundkit/Wave.class \
        xenon/soundkit/WhiteNoiseWave.class \
        xenon/soundkit/StaticWave.class \
        xenon/soundkit/Envelope.class \
        xenon/soundkit/SoundFilterDataBuffer.class \
        xenon/soundkit/SoundFilter.class \
        xenon/soundkit/ReverseClipFilter.class \
        xenon/soundkit/DelaySoundFilter.class 


JSRCS2  = \
        xenon/soundkit/TestSound.java \
        xenon/soundkit/PPMCAudioPlayer.java \
        xenon/soundkit/SoundEngine.java \
        xenon/soundkit/Wave.java \
        xenon/soundkit/WhiteNoiseWave.java \
        xenon/soundkit/StaticWave.java \
        xenon/soundkit/Envelope.java \
        xenon/soundkit/SoundFilterDataBuffer.java \
        xenon/soundkit/SoundFilter.java \
        xenon/soundkit/DelaySoundFilter.java 


# **** Java Program 3 ****
JCLSS3  = \
        xenon/soundkit/gui/GuiTestSound.class \
        xenon/soundkit/gui/SliderPane.class \
        xenon/soundkit/gui/SimpleSliderPane.class \
        xenon/soundkit/gui/VerticalLayout.class \
        xenon/soundkit/gui/WholeNumberField.class \
        xenon/soundkit/gui/WaveformListCellRenderer.class \
        xenon/soundkit/TestSound.class \
        xenon/soundkit/PPMCAudioPlayer.class \
        xenon/soundkit/SoundEngine.class \
        xenon/soundkit/Wave.class \
        xenon/soundkit/WhiteNoiseWave.class \
        xenon/soundkit/StaticWave.class \
        xenon/soundkit/Envelope.class \
        xenon/soundkit/SoundFilterDataBuffer.class \
        xenon/soundkit/SoundFilter.class \
        xenon/soundkit/DelaySoundFilter.class 

JSRCS3  = \
        xenon/soundkit/gui/GuiTestSound.java \
        xenon/soundkit/gui/SliderPane.java \
        xenon/soundkit/gui/SimpleSliderPane.java \
        xenon/soundkit/gui/VerticalLayout.java \
        xenon/soundkit/gui/WholeNumberField.java \
        xenon/soundkit/gui/WaveformListCellRenderer.java \
        xenon/soundkit/TestSound.java \
        xenon/soundkit/PPMCAudioPlayer.java \
        xenon/soundkit/SoundEngine.java \
        xenon/soundkit/Wave.java \
        xenon/soundkit/WhiteNoiseWave.java \
        xenon/soundkit/StaticWave.java \
        xenon/soundkit/Envelope.java \
        xenon/soundkit/SoundFilterDataBuffer.java \
        xenon/soundkit/SoundFilter.java \
        xenon/soundkit/DelaySoundFilter.java 




# **** Java Program 4 ****
JCLSS4  = \
        xenon/humanoid/Humanoid.class \
        xenon/humanoid/HumanoidApplet.class \
        xenon/humanoid/HumanoidGameEngine.class \
        xenon/humanoid/ApplicationVersion.class \
        xenon/humanoid/Starship.class \
        xenon/humanoid/LaserBlast.class \
        xenon/humanoid/Planetscape.class \
        xenon/humanoid/Lander.class \
        xenon/humanoid/Bomblet.class \
        xenon/humanoid/Implosion.class \
        xenon/humanoid/Explosion.class \
        xenon/humanoid/OvalExplosion.class \
        xenon/humanoid/PlanetExplosion.class \
        xenon/humanoid/Human.class \
        xenon/humanoid/BonusFlyer.class \
        xenon/humanoid/Baiter.class \
        xenon/humanoid/Bomber.class \
        xenon/humanoid/Pod.class \
        xenon/humanoid/Swarmer.class \
        xenon/humanoid/CollisionHandler.class \
        xenon/humanoid/GameUtilities.class \
        xenon/gamekit/GameEngine.class \
        xenon/gamekit/WorldObject.class \
        xenon/gamekit/FriendObject.class \
        xenon/gamekit/EnemyObject.class \
        xenon/gamekit/GraphicsUtils.class \
        xenon/gamekit/ImageRenderer.class \
        xenon/gamekit/DoubleBufferedContainer.class \
        xenon/gamekit/ObjectCounter.class \
        xenon/gamekit/CollisionDetector.class \
        xenon/gamekit/CollisionMapDispatcher.class \
        xenon/gamekit/CollisionAdapter.class \
        xenon/gamekit/CollisionListener.class \
        $(JCLSS2)


JSRCS4  = \
        xenon/humanoid/Humanoid.java \
        xenon/humanoid/HumanoidGameEngine.java \
        xenon/humanoid/ApplicationVersion.java \
        xenon/humanoid/Starship.java \
        xenon/humanoid/LaserBlast.java \
        xenon/humanoid/Planetscape.java \
        xenon/humanoid/Lander.java \
        xenon/humanoid/Bomblet.java \
        xenon/humanoid/Implosion.java \
        xenon/humanoid/Explosion.java \
        xenon/humanoid/OvalExplosion.java \
        xenon/humanoid/PlanetExplosion.java \
        xenon/humanoid/Human.java \
        xenon/humanoid/BonusFlyer.java \
        xenon/humanoid/Baiter.java \
        xenon/humanoid/Bomber.java \
        xenon/humanoid/Pod.java \
        xenon/humanoid/Swarmer.java \
        xenon/humanoid/CollisionHandler.java \
        xenon/humanoid/GameUtilities.java \
        xenon/gamekit/GameEngine.java \
        xenon/gamekit/WorldObject.java \
        xenon/gamekit/FriendObject.java \
        xenon/gamekit/EnemyObject.java \
        xenon/gamekit/GraphicsUtils.java \
        xenon/gamekit/ImageRenderer.java \
        xenon/gamekit/DoubleBufferedContainer.java \
        xenon/gamekit/ObjectCounter.java \
        xenon/gamekit/CollisionDetector.java \
        xenon/gamekit/CollisionMapDispatcher.java \
        xenon/gamekit/CollisionAdapter.java \
        xenon/gamekit/CollisionListener.java 

JARFILE1=humanoid.jar

#
# Shell scripts
#
SHELL_SCRIPTS   = 

SHELL_SOURCES   = 

# Add new suffixes
.SUFFIXES: .java .class .sh .html

#
# Rule to compile `java' files
#
.java.class:
        $(JAVAC) $(JAVAC_FLAGS) $<

#
# Rule to compile `class' files in `html' (embedded applet) files
#
# .class.html:
#       $(MAKE_APPLET) $(MAKE_APPLET_FLAGS)  $<

#
# Checking out from VCS
#
.SCCS_GET:
        co -s $@

#
# Default Rules
#

# Rule to make an executable shell script
.sh:
        $(RM) $@
        $(CP) $@.sh $@
        $(CHMOD) 755 $@


# Rule to compile `C' source files
.c.o:
        $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<  


# ********************************************************************************
# And how to build it
# ********************************************************************************

all:: first  $(TARGETS) 

all-jars: all $(JARFILE1)

first:: make-applet  make-jrt-stub  clean-java-class  version-counter

# **** Program #1 ****
Landscape:: $(JCLSS1)

Landscape:: xenon/humanoid/Landscape.class
        $(MAKE_JRT_STUB) $(MAKE_JRT_STUB_FLAGS) xenon/humanoid/Landscape.class 

# **** Program #2 ****
TestSound:: $(JCLSS2)

TestSound:: xenon/soundkit/TestSound.class
           $(MAKE_JRT_STUB) $(MAKE_JRT_STUB_FLAGS) xenon/soundkit/TestSound.class 

# **** Program #3 ****
GuiTestSound:: $(JCLSS3)

GuiTestSound:: xenon/soundkit/gui/GuiTestSound.class
           $(MAKE_JRT_STUB) $(MAKE_JRT_STUB_FLAGS) 
xenon/soundkit/gui/GuiTestSound.class 

# **** Program #4 ****
Humanoid:: $(JCLSS4) 
        version-counter --package xenon.humanoid

Humanoid:: xenon/humanoid/Humanoid.class
        $(MAKE_JRT_STUB) $(MAKE_JRT_STUB_FLAGS) --force --srcdir ${SRCDIR} --jarfile 
${PROPERTIES_DIR}:${CLASSES_DIR}/${JARFILE1} xenon/humanoid/Humanoid.class 

clean::
        $(RM) $(TARGETS) $(JCLASSES)
        sh clean-java-class.sh  --verbose --force $(JCLASSES)

edit: DOWORK1 DOWORK2
        @echo "Make (GNU) Emacs Editor scripts complete ..."

#
# General Installation
#

distclean:: uninstall  reallyclean
        @ echo "Distribution cleaned up."

reallyclean:: purgeclean
        $(RM) *.bak *~ *.save a.DEPEND* *.dep *.olde mondieu* *.class ,* \#* 
        $(RM) core *.temp *.BAK *.log *.lst
        find . -name "*.class" -exec ${RM} {} \;

purgeclean:: clean
        $(RM) core rcs*.awk input*.txt output*.txt rlog1.* 
        $(RM) acnftest* ppcftest* *.tmp *.copy make.log dump.log


# ********************************************************************************
# Miscellany
# ********************************************************************************

THISMAKEFILE=Makefile

help:: help-targets
        @echo "==================================================================="
        @echo "Help for $(THISMAKEFILE) complete for today"
        @echo "==================================================================="
        @echo 

# Generate list of make targets for this makefile.

help-targets::
        @echo "List of buildable targets in the file:\`$(THISMAKEFILE)':-"
        @echo "============================================================"
        @egrep '^[A-Za-z0-9][-A-Za-z0-9_.+$$]+[ ]*:([^s]|$$)' $(THISMAKEFILE) | awk 
-F: '{ printf "\t%s\n", $$1 }' | sort | uniq
        @echo 


# Packager for archiving the distributution

# Generate Java Archive #1
$(JARFILE1): $(MAKEJAR) $(JCLSS4)
        @echo "Generating jar file ($@) NB:excluding java source files"
        $(MAKEJAR) --verbose --list --normal --exclude '\.xcf\.gz' $(JARFILE1) . xenon

clean:: clean.$(JARFILE1)
clean.$(JARFILE1):
        $(RM) $(JARFILE1)

pack:   
        @echo "Packing source files in archive file: \`$(PACK_TAR_FILE)' "
        @echo "First, cleaning source directories ..."
        $(MAKE) -f $(THISMAKEFILE) clean
        @CURRENT_DIR="`pwd`" ; \
        TARDIR=`basename $$CURRENT_DIR` ; \
        PARENT_DIR=`dirname $$CURRENT_DIR` ; \
        package_name=$(PACK_TAR_FILE) ; \
        export CURRENT_DIR  TARDIR  PARENT_DIR; \
        cd $$PARENT_DIR ; if [ $$? -eq 0 ]; then \
        echo ">>>> Changed to directory:  \`$$PARENT_DIR'" ; \
        echo ">>>> Creating tape archive: \`$$package_name'" ; \
        ( set -x ; $(RM) $$PARENT_DIR/$(PACK_TAR_FILE) ; \
          $(TARBACKUP) $(TARBACKUP_FLAGS) $$PARENT_DIR/$$package_name . $$TARDIR; ) ; \
        else false; fi




release: $(JARFILE1)
        @echo "======================================================================"
        @echo "Packing Release files in archive file: \`$(RELEASE_TAR_FILE)' "
        @echo "======================================================================"
        @CURRENT_DIR="`pwd`" ; \
        $(RM) *.EXCLUDE ; \
        TARDIR=`basename $$CURRENT_DIR` ; \
        PARENT_DIR=`dirname $$CURRENT_DIR` ; \
        package_name=$(RELEASE_TAR_FILE) ; \
        export CURRENT_DIR  TARDIR  PARENT_DIR; \
        cd $$PARENT_DIR ; if [ $$? -eq 0 ]; then \
        echo ">>>> Changed to directory:  \`$$PARENT_DIR'" ; \
        echo ">>>> Creating tape archive: \`$$package_name'" ; \
        ( set -x ; $(RM) $$PARENT_DIR/$(RELEASE_TAR_FILE) ; \
          $(TARBACKUP) $(TARBACKUP_FLAGS) --exclude '.class' --incl-bin 
$$PARENT_DIR/$$package_name . $$TARDIR; ) ; \
        else false; fi


debug:
        @echo "Making *debuggable* versions ..."
        $(MAKE) all CDEBUGFLAGS='-g' DEFINES='-DXDEBUG'

new_debug:
        @echo "Making *debuggable* versions ..."
        $(MAKE) clean
        $(MAKE) all CDEBUGFLAGS='-g' DEFINES='-DXDEBUG'

#
# Defaults
# 
all::
        @ echo "make ($@) complete for today."

install-all:: install
        @ echo "make ($@) complete for today."

install::
        @ echo "make ($@) complete for today."

distclean::
        @ echo "make ($@) complete for today."

uninstall::
        @ echo "make ($@) complete for today."

install.man::
        @ echo "make ($@) complete for today."

install.private::
        @ echo "make ($@) complete for today."

depend::
        @ echo "make ($@) complete for today."

clean::
        @ echo "make ($@) complete for today."


# Dependencies

# fini

Reply via email to