Blob Blame History Raw
# Copyright (C) 1995 Bjoern Beutel.

# Compilation rules for Malaga. ===============================================

# Always use POSIX shell.
SHELL = /bin/sh

# Support object files for different architectures in different directories.
VPATH = @srcdir@
srcdir = @srcdir@

# The directories where files will be installed.
prefix = @prefix@
exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
bindir = ${DESTDIR}@bindir@
libdir = ${DESTDIR}@libdir@
includedir = ${DESTDIR}@includedir@
infodir = ${DESTDIR}@infodir@
datadir = ${DESTDIR}@datadir@
mandir = ${DESTDIR}@mandir@
man1dir = $(mandir)/man1

# How to install a program or data.
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_DIR = ${INSTALL} -d

# How to update the "dir" entry in an info directory.
INSTALL_INFO = install-info

# How to compile a C source file.
COMPILE = @CC@ -c @CFLAGS@ @GCCFLAGS@ @SYS_CFLAGS@

# How to link an executable.
LINK = @CC@ @LDFLAGS@

# "libtool" helps to compile and link libraries.
LIBTOOL = ./libtool --silent

# How to create a DVI file from a Texinfo file.
TEXI2DVI = texi2dvi

# How to create an Info file from a Texinfo file.
MAKEINFO = makeinfo

# How to configure for GTK+.
GTK_LIBS = @GTK_LIBS@
GTK_CFLAGS = @GTK_CFLAGS@

# How to configure for GLib only.
GLIB_LIBS = @GLIB_LIBS@
GLIB_CFLAGS = @GLIB_CFLAGS@

READLINE_LIBS = @READLINE_LIBS@
READLINE_CFLAGS = @READLINE_CFLAGS@

# The malaga binaries, the library and the header file.
MALSHOW = @MALSHOW@
MALAGA_BIN = malaga mallex malmake malrul $(MALSHOW) malsym

# Every binary has a manual page.
MALAGA_MAN1 = $(MALAGA_BIN:=.1)

# The current version of libmalaga for libtool.
# Keep this in synchronisation with the versioning numbers in "malaga.h".
LIBMALAGA_VERSION = 7:0:0

# The names of the current distribution.
DIST = malaga-7.12

# Implicit rules. -------------------------------------------------------------

.SUFFIXES:
.SUFFIXES: .o .c

.c.o:
	@echo "Compiling $<"
	@$(COMPILE) $(GLIB_CFLAGS) $(READLINE_CFLAGS) $<

# Primary goals. --------------------------------------------------------------

all: malaga.h malaga.el libmalaga.la $(MALAGA_BIN)

clean:
	rm -rf *.o *.lo *.tgz libmalaga.la $(MALAGA_BIN) maldump .libs $(DIST)

dvi: malaga.dvi

html: malaga.html

ps: malaga.ps

pdf: malaga.pdf

info: malaga.info

install: all info
	$(INSTALL_DIR) $(bindir)
	for f in $(MALAGA_BIN); do \
	  $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) -s $$f $(bindir)/$$f; \
	  done
	$(INSTALL_DIR) $(includedir)
	$(INSTALL_DATA) $(srcdir)/malaga.h $(includedir)/malaga.h
	$(INSTALL_DIR) $(libdir)
	$(LIBTOOL) --mode=install $(INSTALL_DATA) -s libmalaga.la \
	  $(libdir)/libmalaga.la
	$(INSTALL_DIR) $(datadir)/malaga
	$(INSTALL_DATA) $(srcdir)/malaga.el $(datadir)/malaga/malaga.el
	$(INSTALL_DIR) $(man1dir)
	for f in $(MALAGA_MAN1); do \
	  $(INSTALL_DATA) $(srcdir)/$$f $(man1dir)/$$f; done
	$(INSTALL_DIR) $(infodir)
	for f in malaga.info*; do $(INSTALL_DATA) $$f $(infodir)/$$f; done
	$(INSTALL_INFO) --info-dir=$(infodir) malaga.info 

uninstall:
	for f in $(MALAGA_BIN); do rm -f $(bindir)/$$f; done
	rm -f $(includedir)/malaga.h
	rm -Rf $(datadir)/malaga
	$(LIBTOOL) --mode=uninstall rm -f $(libdir)/libmalaga.la
	for f in $(MALAGA_MAN1) ; do rm -f $(man1dir)/$$f; done
	$(INSTALL_INFO) --remove --info-dir=$(infodir) malaga.info 
	rm -f $(infodir)/malaga.info*

# Private goals for the maintainer. -------------------------------------------

dist: configure info
	rm -rf $(DIST) $(DIST).tgz
	mkdir $(DIST)
	cp -p $(srcdir)/configure $(DIST)
	cp -p $(srcdir)/configure.in $(DIST)
	cp -p $(srcdir)/config.guess $(DIST)
	cp -p $(srcdir)/config.sub $(DIST)
	cp -p $(srcdir)/ltmain.sh $(DIST)
	cp -p $(srcdir)/install-sh $(DIST)
	cp -p $(srcdir)/Makefile.in $(DIST)
	cp -p $(srcdir)/*.[ch1] $(DIST)
	cp -p $(srcdir)/*.{txt,texi} $(DIST)
	cp -p malaga.info* $(DIST)
	cp -p $(srcdir)/malaga.el $(DIST)
	mkdir $(DIST)/grammars
	cp -rp $(srcdir)/grammars/german $(DIST)/grammars
	cd $(DIST)/grammars/german; rm -f .\#* \#* *~ *_[bcl] *.out
	cp -rp $(srcdir)/grammars/formal $(DIST)/grammars
	cd $(DIST)/grammars/formal; rm -f .\#* \#* *~ *_[bcl] *.out
	cp -rp $(srcdir)/grammars/numeral $(DIST)/grammars
	cd $(DIST)/grammars/numeral; rm -f .\#* \#* *~ *_[bcl] *.out
	tar zcf $(DIST).tgz $(DIST)
	rm -rf $(DIST)

# malaga.dvi, malaga.info, malaga.html, malaga.ps, malaga.pdf -----------------

malaga.dvi: malaga.texi
	$(TEXI2DVI) $(srcdir)/malaga.texi

malaga.info: malaga.texi
	$(MAKEINFO) $(srcdir)/malaga.texi

malaga.html: malaga.texi
	$(MAKEINFO) --html --output=malaga.html --number-sections \
          --no-headers --no-split $(srcdir)/malaga.texi

malaga.ps: malaga.dvi
	dvips malaga.dvi

malaga.pdf: malaga.dvi
	dvipdfm malaga.dvi

# libmalaga -------------------------------------------------------------------

COMMON_OBJS = analysis.o avl_trees.o basic.o cache.o commands.o display.o \
              files.o hangul.o input.o lexicon.o malaga_files.o malaga_lib.o \
              options.o patterns.o pools.o processes.o rules.o scanner.o \
              symbols.o transmit.o tries.o value_parser.o values.o

LIBMALAGA_OBJS = $(COMMON_OBJS) libmalaga.o

$(LIBMALAGA_OBJS):
	@echo "Compiling $<"
	@$(LIBTOOL) --mode=compile $(COMPILE) $(GLIB_CFLAGS) $(srcdir)/$*.c

libmalaga.la: $(LIBMALAGA_OBJS)
	@echo "Linking libmalaga"
	@$(LIBTOOL) --mode=link $(LINK) $(LIBMALAGA_OBJS:.o=.lo) $(GLIB_LIBS) \
          -lm -o libmalaga.la -version-info $(LIBMALAGA_VERSION) \
	  -rpath @libdir@

# malaga ----------------------------------------------------------------------

MALAGA_OBJS = commands_interactive.o breakpoints.o debugger.o generation.o \
              malaga.o

malaga: $(MALAGA_OBJS) libmalaga.la
	@echo "Linking malaga"
	@$(LIBTOOL) --mode=link $(LINK) $(MALAGA_OBJS) $(GLIB_LIBS) \
	  $(READLINE_LIBS) -lm libmalaga.la -o malaga

# maldump ---------------------------------------------------------------------

maldump: maldump.o libmalaga.la
	@echo "Linking maldump"
	@$(LIBTOOL) --mode=link $(LINK) maldump.o $(GLIB_LIBS) -lm \
	  libmalaga.la -o maldump

# mallex ----------------------------------------------------------------------

MALLEX_OBJS = breakpoints.o commands_interactive.o debugger.o lex_compiler.o \
              mallex.o

mallex: $(MALLEX_OBJS) libmalaga.la
	@echo "Linking mallex"
	@$(LIBTOOL) --mode=link $(LINK) $(MALLEX_OBJS) $(GLIB_LIBS) \
	  $(READLINE_LIBS) -lm libmalaga.la -o mallex

# malmake ---------------------------------------------------------------------

malmake: malmake.o libmalaga.la
	@echo "Linking malmake"
	@$(LIBTOOL) --mode=link $(LINK) malmake.o $(GLIB_LIBS) libmalaga.la \
	  -o malmake

# malrul ----------------------------------------------------------------------

MALRUL_OBJS = malrul.o rule_code.o rule_compiler.o rule_parser.o \
              rule_symbols.o

malrul: $(MALRUL_OBJS) libmalaga.la
	@echo "Linking malrul"
	@$(LIBTOOL) --mode=link $(LINK) $(MALRUL_OBJS) $(GLIB_LIBS) \
	  libmalaga.la -o malrul	

# malshow ---------------------------------------------------------------------

MALSHOW_OBJS = allomorphs.o canvas.o expressions.o malshow.o result.o tree.o \
               variables.o

$(MALSHOW_OBJS):
	@echo "Compiling $<"
	@$(COMPILE) $(GTK_CFLAGS) $(srcdir)/$*.c

malshow: $(MALSHOW_OBJS) libmalaga.la
	@echo "Linking malshow"
	@$(LIBTOOL) --mode=link $(LINK) $(MALSHOW_OBJS) $(GTK_LIBS) \
	  -lm libmalaga.la -o malshow 

# malsym ----------------------------------------------------------------------

MALSYM_OBJS = malsym.o sym_compiler.o

malsym: $(MALSYM_OBJS) libmalaga.la
	@echo "Linking malsym"
	@$(LIBTOOL) --mode=link $(LINK) $(MALSYM_OBJS) $(GLIB_LIBS) \
	  libmalaga.la -o malsym

#==============================================================================
# The dependencies are created by "gcc -MM *.c `pkg-config gtk+-2.0 --cflags`.

allomorphs.o: allomorphs.c basic.h scanner.h input.h canvas.h \
 allomorphs.h
analysis.o: analysis.c basic.h pools.h values.h rule_type.h rules.h \
 lexicon.h cache.h analysis.h
avl_trees.o: avl_trees.c basic.h avl_trees.h
basic.o: basic.c basic.h
breakpoints.o: breakpoints.c basic.h pools.h values.h files.h \
 rule_type.h rules.h input.h commands.h breakpoints.h
cache.o: cache.c basic.h pools.h values.h avl_trees.h cache.h
canvas.o: canvas.c basic.h scanner.h input.h files.h canvas.h
commands.o: commands.c basic.h input.h files.h commands.h
commands_interactive.o: basic.h commands.h commands_interactive.c \
 commands_interactive.h
debugger.o: debugger.c basic.h pools.h values.h symbols.h files.h \
 input.h commands.h commands_interactive.h options.h rule_type.h rules.h \
 display.h breakpoints.h value_parser.h scanner.h debugger.h
display.o: display.c basic.h files.h input.h commands.h processes.h \
 display.h
expressions.o: expressions.c basic.h scanner.h input.h canvas.h \
 expressions.h
files.o: files.c basic.h files.h
generation.o: generation.c basic.h pools.h values.h input.h commands.h \
 rule_type.h rules.h lexicon.h analysis.h debugger.h hangul.h \
 generation.h
hangul.o: hangul.c basic.h pools.h tries.h hangul.h
input.o: input.c basic.h files.h input.h
lex_compiler.o: lex_compiler.c basic.h pools.h values.h tries.h \
 rule_type.h rules.h scanner.h files.h malaga_files.h symbols.h \
 input.h commands.h avl_trees.h options.h hangul.h lex_compiler.h
lexicon.o: lexicon.c basic.h pools.h values.h tries.h files.h \
 malaga_files.h lexicon.h
libmalaga.o: libmalaga.c basic.h pools.h values.h symbols.h files.h \
 rule_type.h rules.h analysis.h input.h commands.h options.h \
 malaga_lib.h hangul.h scanner.h value_parser.h libmalaga.h
malaga.o: malaga.c basic.h pools.h values.h symbols.h files.h \
 rule_type.h rules.h analysis.h input.h commands.h commands_interactive.h \
 options.h display.h malaga_lib.h generation.h debugger.h breakpoints.h \
 cache.h transmit.h hangul.h
malaga_files.o: malaga_files.c basic.h files.h malaga_files.h
malaga_lib.o: malaga_lib.c basic.h pools.h values.h input.h commands.h \
 options.h rule_type.h rules.h files.h analysis.h cache.h symbols.h \
 lexicon.h transmit.h display.h scanner.h patterns.h hangul.h \
 malaga_lib.h
maldump.o: maldump.c basic.h pools.h values.h symbols.h files.h \
 rule_type.h rules.h patterns.h hangul.h
mallex.o: mallex.c basic.h pools.h values.h symbols.h scanner.h \
 rule_type.h rules.h files.h lex_compiler.h input.h commands.h \
 commands_interactive.h options.h breakpoints.h debugger.h display.h \
 transmit.h patterns.h hangul.h
malmake.o: malmake.c basic.h files.h malaga_files.h input.h
malrul.o: malrul.c basic.h pools.h values.h symbols.h scanner.h \
 files.h rule_type.h rule_code.h rule_compiler.h patterns.h hangul.h
malshow.o: malshow.c basic.h input.h scanner.h files.h canvas.h \
 allomorphs.h expressions.h result.h tree.h variables.h
malsym.o: malsym.c basic.h pools.h values.h scanner.h files.h \
 sym_compiler.h
options.o: options.c basic.h pools.h values.h symbols.h input.h \
 commands.h rule_type.h rules.h value_parser.h hangul.h scanner.h \
 options.h
patterns.o: patterns.c basic.h patterns.h
pools.o: pools.c basic.h files.h pools.h
processes.o: processes.c basic.h files.h input.h processes.h
result.o: result.c basic.h scanner.h input.h canvas.h result.h
rule_code.o: rule_code.c basic.h pools.h values.h symbols.h \
 rule_type.h files.h malaga_files.h rule_code.h
rule_compiler.o: rule_compiler.c basic.h pools.h values.h scanner.h \
 rule_type.h rule_code.h rule_parser.h rule_symbols.h files.h \
 rule_compiler.h
rule_parser.o: rule_parser.c basic.h pools.h values.h symbols.h \
 patterns.h files.h scanner.h rule_type.h rule_code.h rule_symbols.h \
 hangul.h rule_parser.h
rules.o: rules.c basic.h pools.h values.h symbols.h patterns.h files.h \
 malaga_files.h rule_type.h hangul.h rules.h
rule_symbols.o: rule_symbols.c basic.h pools.h files.h values.h \
 rule_type.h rule_code.h avl_trees.h rule_symbols.h
scanner.o: scanner.c basic.h files.h scanner.h
symbols.o: symbols.c basic.h pools.h values.h files.h malaga_files.h \
 symbols.h
sym_compiler.o: sym_compiler.c basic.h pools.h values.h scanner.h \
 files.h malaga_files.h symbols.h avl_trees.h hangul.h sym_compiler.h
transmit.o: transmit.c basic.h pools.h values.h files.h input.h \
 symbols.h commands.h value_parser.h scanner.h options.h rule_type.h \
 rules.h processes.h transmit.h
tree.o: tree.c basic.h scanner.h input.h canvas.h tree.h
tries.o: tries.c basic.h pools.h tries.h
value_parser.o: value_parser.c basic.h pools.h values.h symbols.h \
 scanner.h hangul.h value_parser.h
values.o: values.c basic.h pools.h hangul.h values.h
variables.o: variables.c basic.h scanner.h input.h canvas.h \
 variables.h

# End of file. ================================================================