1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
22# Use is subject to license terms.
23#
24# ident	"%Z%%M%	%I%	%E% SMI"
25#
26
27#####################################################
28#
29# Makefile for a SNMP Agent
30#
31#####################################################
32
33#
34# Makefile.vars
35#
36
37#####################################################
38# Edit the following variables as needed
39#####################################################
40
41BIN=		bin
42
43SNMP_ROOT=	/usr
44
45SNMP_LIB=	$(SNMP_ROOT)/lib
46
47SNMP_INC=	$(SNMP_ROOT)/include/snmp
48
49PURIFY_HOME=	/usr/soft/purify3.0
50
51
52AGENT=		snmpdemo
53
54MIBS=		mib_demo.txt
55
56
57#####################################################
58
59TARGET=		$(AGENT)d
60
61
62.KEEP_STATE:
63
64SOURCES.c=\
65	$(AGENT)_tree.c\
66	$(AGENT)_stub.c\
67	$(AGENT)_trap.c\
68	$(AGENT)_appl.c\
69	$(AGENT)_demoEntry.c
70
71SOURCES.h=\
72	$(SNMP_INC)/impl.h\
73	$(SNMP_INC)/asn1.h\
74	$(SNMP_INC)/error.h\
75	$(SNMP_INC)/pdu.h\
76	$(SNMP_INC)/trap.h\
77	$(SNMP_INC)/node.h\
78	$(AGENT)_stub.h
79
80OBJECTS= $(SOURCES.c:%.c=$(BIN)/%.o)
81
82
83#
84#  CC flags
85#
86
87DEFINES=
88
89MY_INCLUDE=	-I. -I$(SNMP_INC)
90
91CPPFLAGS +=	$(MY_INCLUDE)
92
93CFLAGS=		-c
94
95
96#
97# LD flags
98#
99
100EXT = 1
101
102MYLINKLIBS += $(LDLIBS) -L$(SNMP_LIB) -lssagent -L$(SNMP_LIB) -lssasnmp
103
104LIBS=	$(MYLINKLIBS) -lsocket -lnsl -ly -ll -lelf -lgen
105
106TEST=	test
107
108PURIFY= $(PURIFY_HOME)/purify
109
110PARSER=	$(SNMP_ROOT)/$(BIN)/mibcodegen
111
112
113#####################################################
114
115#
116# all
117#
118
119all: $(SOURCES.h) $(TARGET)   
120
121install: all
122
123$(TARGET): $(BIN) $(OBJECTS) $(MYLIBS)
124	$(CC) -o $(TARGET) $(LDFLAGS) $(OBJECTS) $(MYLIBS) $(LIBS)
125
126$(BIN)/%.o: %.c  
127	$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFINES) $*.c -o $@
128
129
130#
131# parse
132#
133
134parse:	$(MIBS)
135	$(PARSER) -b $(AGENT) -f $(MIBS)
136
137
138#
139# lint
140#
141
142lint:
143	$(LINT) $(LDFLAGS) $(CPPFLAGS) $(DEFINES) $(SOURCES.c) $(MYLIBS) $(LIBS)
144
145
146#
147# purify
148#
149
150purify:
151	$(PURIFY) $(CC) -o $(TARGET) $(LDFLAGS) $(OBJECTS) $(MYLIBS) $(LIBS)
152
153
154#
155# directories
156#
157
158$(BIN):
159	@$(TEST) -d $@ || mkdir $@
160
161
162#
163# clean
164#
165
166clean:
167	$(RM) $(OBJECTS)
168
169clobber: clean
170	$(RM) $(TARGET)
171