Blob Blame History Raw
#
# Makefile.mingw --
#
#       Makefile for win32 mingw environment.
#
# See the file "COPYING" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# @(#) $Id: Makefile.mingw 7949 2008-03-22 16:19:33Z schoenw $
#

##
## Installation paths: 
##
## MIBDIR   -- MIB destination (let it end with /mibs; check againt config.h)
## PIBDIR   -- MIB destination (let it end with /pibs; check againt config.h)
## BINDIR   -- destination for the binaries (smidump.exe, ...)
##
# INSTROOT = c:\smi
INSTROOT = c/smi
MIBDIR = $(INSTROOT)/mibs
PIBDIR = $(INSTROOT)/pibs
BINDIR = $(INSTROOT)/bin
LIBDIR = $(INSTROOT)/lib

##
## Commands:
##

##
## Linux cross-compile is now the way to go.
## compilation within win-environment works, but you need to
## change path an options settings to get installation work.
## 
# CC	= gcc
# CP	= copy
# RM      = del
# AR	= ar
# MKDIR	= -mkdir

##
## Debian Linux mingw cross-compiler version:
##
CC	= i586-mingw32msvc-gcc
CP	= cp
RM	= rm -f
AR	= i586-mingw32msvc-ar
MKDIR	= -mkdir

##
## Definitions:
##
CFLAGS = -O2 -Wall
INCLUDES = -I. -I../lib -I../tools

## 
## Global Makefile settings
##
LIBSMIOBJS = \
	win.o \
	data.o \
	check.o \
	error.o \
	util.o \
	smi.o \
	parser-smi.o \
	scanner-smi.o \
	parser-sming.o \
	scanner-sming.o \
	snprintf.o

TOOLSOBJS = \
	smiquery.o \
	smilint.o \
	smidump.o \
	smidiff.o \
	smixlate.o \
	shhopt.o \
	fprint.o \
	fortopat.o \
	rea.o \
 	dstring.o \
	dump-sming.o \
	dump-smi.o \
	dump-imports.o \
	dump-types.o \
	dump-tree.o \
	dump-mosy.o \
	dump-corba.o \
	dump-cm.o \
	dump-jax.o \
	dump-netsnmp.o \
	dump-xml.o \
	dump-identifiers.o \
	dump-metrics.o \
	dump-python.o \
	dump-perl.o \
	dump-scli.o \
	dump-xsd.o \
	dump-sppi.o \
	dump-sizes.o \
	dump-svg.o \
	dump-compliance.o \
	dump-yang.o \
	dump-boilerplate.o
#	dump-smiv3.o
#	dump-fig.o

SMILIB = libsmi.a

##
## Implicit Targets
##
VPATH = .:../lib:../tools
.c.o:
	$(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<


##
## Targets
##
all:	libs tools

libs:	$(SMILIB)

$(SMILIB):	$(LIBSMIOBJS)
	$(AR) -ruv $(SMILIB) $(LIBSMIOBJS)

tools:	smiquery.exe smilint.exe smidump.exe smidiff.exe smixlate.exe

smiquery.exe:	$(TOOLSOBJS) $(SMILIB)
	$(CC) $(CFLAGS) -o smiquery.exe smiquery.o shhopt.o $(SMILIB)

smilint.exe:	$(TOOLSOBJS) $(SMILIB)
	$(CC) $(CFLAGS) -o smilint.exe smilint.o shhopt.o $(SMILIB)

smidump.exe:	$(TOOLSOBJS) $(SMILIB)
	$(CC) $(CFLAGS) \
		-o smidump.exe smidump.o dump-sming.o dump-smi.o \
		dump-imports.o dump-types.o dump-tree.o dump-mosy.o \
		dump-corba.o dump-netsnmp.o dump-cm.o dump-jax.o dump-xml.o \
		dump-identifiers.o dump-metrics.o dump-python.o dump-perl.o \
		dump-scli.o dump-xsd.o dump-sppi.o dump-sizes.o dump-svg.o \
		dump-compliance.o dump-yang.o dump-boilerplate.o \
		shhopt.o fprint.o fortopat.o rea.o $(SMILIB)

smidiff.exe:	$(TOOLSOBJS) $(SMILIB)
	$(CC) $(CFLAGS) -o smidiff.exe smidiff.o shhopt.o $(SMILIB)

smixlate.exe:	$(TOOLSOBJS) $(SMILIB)
	$(CC) $(CFLAGS) -o smixlate.exe smixlate.o shhopt.o dstring.o $(SMILIB)

clean:
	$(RM) *.o
	$(RM) *.a
	$(RM) *.exe

install:	all install-doc install-bin install-mibs install-pibs

install-doc:
	$(MKDIR) $(INSTROOT)
	$(CP) ../README $(INSTROOT)
	$(CP) ../COPYING $(INSTROOT)
	$(CP) ../ChangeLog $(INSTROOT)
	$(CP) ../THANKS $(INSTROOT)
	$(CP) ../TODO $(INSTROOT)
	$(CP) README.mingw $(INSTROOT)
	$(MKDIR) $(INSTROOT)/doc
	-$(CP) ../doc/*.txt $(INSTROOT)/doc
	-$(CP) ../doc/*.ps $(INSTROOT)/doc
	-$(CP) ../doc/smi* $(INSTROOT)/doc

install-bin:
	$(MKDIR) $(BINDIR)
	$(CP) *.exe $(BINDIR)
	$(MKDIR) $(LIBDIR)
	$(CP) *.a $(LIBDIR)

install-mibs:
	$(MKDIR) $(MIBDIR)
	$(MKDIR) $(MIBDIR)/iana
	-$(CP) ../mibs/iana/* $(MIBDIR)/iana
	$(MKDIR) $(MIBDIR)/ietf
	-$(CP) ../mibs/ietf/* $(MIBDIR)/ietf
	$(MKDIR) $(MIBDIR)/irtf
	-$(CP) ../mibs/irtf/* $(MIBDIR)/irtf
	$(MKDIR) $(MIBDIR)/tubs
	-$(CP) ../mibs/tubs/* $(MIBDIR)/tubs
	$(MKDIR) $(MIBDIR)/site
	-$(CP) ../mibs/site/* $(MIBDIR)/site

install-pibs:
	$(MKDIR) $(PIBDIR)
	$(MKDIR) $(PIBDIR)/ietf
	-$(CP) ../pibs/ietf/* $(PIBDIR)/ietf
	$(MKDIR) $(PIBDIR)/tubs
	-$(CP) ../pibs/tubs/* $(PIBDIR)/tubs
	$(MKDIR) $(PIBDIR)/site
	-$(CP) ../pibs/site/* $(PIBDIR)/site

zip: install
	(cd c; zip -r ../libsmi.zip .)

##