#
# LPVM Makefile
#
# LPC Virtual Machine
#
# Requires "gnumake"
#
# $Id: Makefile,v 1.3 2002/05/29 10:42:13 dredd Exp $
#
# $Source: /cvsroot/swlpc/swlpc/lpvm/Makefile,v $
# $Revision: 1.3 $
# $Date: 2002/05/29 10:42:13 $
# $State: Exp $
#
# Author: Geoff Wong
# Copyright (C) 1996, 1997 Geoff Wong
# geoff@cs.rmit.edu.au
#
# This Makefile messes up dependency checking (-MM) because
# it's looking for depencies on obj/<sys>/<file>.o instead of <file.o>
# which is how the dependencies are given in .depend
#
include ../swlpc.mk
include ../vsn.mk
# Target Name
TARGET=lpvm.so
STARGET=lpvm.a
#
# Some operating system dependent trickery
#
OBJPATH=.
VPATH=$(OBJPATH)
#
# Compiler Stuff
#
INCLUDE=-I. -I../GC
#
# The compiler source code
#
SRC = \
debug_malloc.c \
error.c \
fatal.c \
hash.c \
stack.c \
stack_alloc.c \
stralloc.c \
strncpy.c \
value.c
#
# Define the object code
#
OBJ := $(SRC:%.c=$(OBJPATH)/%.o)
#
# Find local headers
#
HDRS := $(shell echo *.h)
$(OBJPATH)/%.o: %.c
$(CC) $(PROF) -c $(CFLAGS) $(DEFS) $(INCLUDE) $< -o $@
first: depend
$(MAKE) all
all: $(TARGET)
static: $(STARGET)
$(TARGET): $(OBJ)
-mv ../lib/lib$(TARGET).$(VERSION) ../lib/lib$(TARGET).$(VERSION)~
$(CC) $(CFLAGS) -shared $(LDOPTS) -o ../lib/lib$(TARGET).$(VERSION) $(OBJ) $(LIBS)
-rm ../lib/lib$(TARGET)
-ln -s ../lib/lib$(TARGET).$(VERSION) ../lib/lib$(TARGET)
$(STARGET): $(OBJ)
-mv ../lib/lib$(STARGET).$(VERSION) ../lib/lib$(STARGET).$(VERSION)~
$(AR) cr ../lib/lib$(STARGET).$(VERSION) $(OBJ)
-rm ../lib/lib$(STARGET)
-ln -s ../lib/lib$(STARGET).$(VERSION) ../lib/lib$(STARGET)
tags: $(SRC)
ctags $(SRC)
lint: $(SRC)
tlint $(SRC) > LINT
clean:
-rm -f $(OBJ) core
veryclean: clean
-rm -f $(TARGET) tags
# Depend stuff below (do not change!)
depend: $(SRC) $(HDRS)
$(CC) -MM $(DEFS) $(SRC) $(INCLUDE) > .depend
.PHONY:
-include .depend