Hi Paul,

On Tue, Apr 05, 2011 at 08:07:36PM +0800, Paul Wise wrote:
> I'll forward your changes to the mancala upstream and update the Debian
> package.

Thanks!

> BTW: do you recommend that programs based on libforms generate their .c
> file from the .fd file at build time instead of doing the conversion
> once and saving the result?

I'd think that would be more clever - you safe a bit of storage
and the form designer file (the one with the .fd extension) is
the one that's important (and it's a PITA if someone edits the
.c file and it then gets out of sync with the .fd file). To re-
create the .c and .h files you just need something like

%.c %.h: %.fd
    fdesign -convert $<

in the Makefile (but that requires the .c or .h file is listed
somewhere as a dependency). I append a new version of the Make-
file that should do it automatically.

                          Best regards, Jens
-- 
  \   Jens Thoms Toerring  ________      j...@toerring.de
   \_______________________________      http://toerring.de
# $Id: Makefile,v 1.7 2007-06-13 18:29:52 sverrehu Exp $
TARGETS         = mancala xmancala
DIST            = mancala
VERMAJ          = 1
VERMIN          = 0
VERPAT          = 1
VERSION         = $(VERMAJ).$(VERMIN).$(VERPAT)

CC              = gcc

# Common directories and libraries
INCDIR          = -I.
LIBDIR          = -L.
LIBS            = 

# Directories and libraries for X, Xpm and XForms.
# If you don't have Xpm, you'll need to link with a static version of XForms.
XINCDIR         = -I/usr/include/X11
XLIBDIR         = -L/usr/X11R6/lib
XLIBS           = -lXpm -lforms -lX11 -lm

OPTIM           = -O3 -fomit-frame-pointer
CCOPT           = -Wall $(OPTIM) $(INCDIR) $(XINCDIR) -DVERSION=\"$(VERSION)\"
LDOPT           = -s $(LIBDIR)

# Object files common to all programs.
OBJS            = minimax.o mancala.o

# Object files used by xmancala
XSRCS       = xform.c rulestxt.c
XOBJS           = $(XSRCS:.c=.o)


all: $(TARGETS)

%.c %.h: %.fd
        fdesign -convert $<

mancala: textmain.o $(OBJS)
        $(CC) $(CCOPT) -o $@ textmain.o $(OBJS) $(LDOPT) $(LIBS)

xmancala: $(XOBJS) xmain.o $(OBJS)
        $(CC) $(CCOPT) -o $@ xmain.o $(XOBJS) $(OBJS) \
                $(LDOPT) $(XLIBDIR) $(XLIBS)

.c.o:
        $(CC) -o $@ -c $(CCOPT) $<

clean:
        rm -f *.o core depend *~  xform.c xform.h

veryclean: clean
        rm -f $(TARGETS) $(DIST)-$(VERSION).tar.gz

chmod:
        chmod a+r *

depend dep:
        $(CC) $(INCDIR) $(XINCDIR) -MM *.c >depend

# To let the authors make a distribution. The rest of the Makefile
# should be used by the authors only.
LSMFILE         = $(DIST)-$(VERSION).lsm
DISTDIR         = $(DIST)-$(VERSION)
DISTFILE        = $(DIST)-$(VERSION).tar.gz
DISTFILES       = README INSTALL RULES $(LSMFILE) \
                  Makefile Makefile.bcc \
                  mancala.c mancala.h minimax.c minimax.h \
                  textmain.c \
                  xform.c xform.h xform.fd xmain.c rulestxt.c

$(LSMFILE): FORCE
        VER=$(VERSION); \
        DATE=`date "+%d%b%y"|tr '[a-z]' '[A-Z]'`; \
        sed -e "s/VER/$$VER/g;s/DATE/$$DATE/g" $(DIST).lsm.in > $(LSMFILE)

FORCE:

# Warning: distclean removes the lsm-file, which can not be
# regenerated without the lsm.in-file, which is not part of the package.
distclean: veryclean
        rm -f $(LSMFILE)

dist: $(LSMFILE) chmod
        mkdir $(DISTDIR)
        chmod a+rx $(DISTDIR)
        ln $(DISTFILES) $(DISTDIR)
        tar -cvzf $(DISTFILE) $(DISTDIR)
        chmod a+r $(DISTFILE)
        rm -rf $(DISTDIR)

ifeq (depend,$(wildcard depend))
include depend
endif

Reply via email to