1#
2# Makefile for 64-bit STREAMS modules for Solaris 2 on x64 with gcc.
3#
4# $Id: Makefile.sol2gcc-64x,v 1.1 2005/06/26 23:53:17 carlsonj Exp $
5#
6
7include Makedefs.sol2
8
9# gcc flags for LP64 compilation / linkage
10COPTS           += -finline -fno-inline-functions -fno-builtin -fno-asm \
11		   -nodefaultlibs -D__sun -m64 -mtune=opteron -Ui386 \
12		   -U__i386 -fno-strict-aliasing -fno-unit-at-a-time \
13		   -fno-optimize-sibling-calls -O2 -D_ASM_INLINES \
14		   -ffreestanding -mcmodel=kernel -mno-red-zone -gdwarf-2 \
15		   -std=gnu89 -D_KERNEL -D_SYSCALL32 -D_SYSCALL32_IMPL \
16		   -D_ELF64 -Dsun -D__sun -D__SVR4
17
18# subdirectory where 64-bit objects / binaries will be placed
19LP64DIR		= amd64
20
21# Name of legacy Makefile (for 32-bit binaries)
22STD_MAKE	= Makefile.sol2gcc
23
24COMP_OBJS	= $(LP64DIR)/ppp_comp.o $(LP64DIR)/bsd-comp.o \
25		$(LP64DIR)/deflate.o $(LP64DIR)/zlib.o $(LP64DIR)/vjcompress.o \
26		$(LP64DIR)/ppp_comp_mod.o
27
28all:	std_objs $(LP64DIR) ppp ppp_ahdl ppp_comp
29
30std_objs:
31	$(MAKE) -f $(STD_MAKE) all
32
33ppp:	$(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
34	$(LD) -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
35	chmod +x $(LP64DIR)/$@
36
37ppp_ahdl: $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
38	$(LD) -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp_ahdlc.o \
39		$(LP64DIR)/ppp_ahdlc_mod.o
40	chmod +x $(LP64DIR)/$@
41
42ppp_comp: $(COMP_OBJS)
43	$(LD) -r -o $(LP64DIR)/$@ $(COMP_OBJS)
44	chmod +x $(LP64DIR)/$@
45
46$(LP64DIR)/bsd-comp.o: ../modules/bsd-comp.c
47	$(CC) $(CFLAGS) -c $? -o $@
48$(LP64DIR)/deflate.o: ../modules/deflate.c
49	$(CC) $(CFLAGS) -c $? -o $@
50$(LP64DIR)/ppp.o:	ppp.c
51	$(CC) $(CFLAGS) -c $? -o $@
52$(LP64DIR)/ppp_mod.o:	ppp_mod.c
53	$(CC) $(CFLAGS) -c $? -o $@
54$(LP64DIR)/ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
55	$(CC) $(CFLAGS) -c $? -o $@
56$(LP64DIR)/ppp_ahdlc.o: ppp_ahdlc.c
57	$(CC) $(CFLAGS) -c $? -o $@
58$(LP64DIR)/ppp_comp.o: ppp_comp.c
59	$(CC) $(CFLAGS) -c $? -o $@
60$(LP64DIR)/ppp_comp_mod.o: ppp_comp_mod.c
61	$(CC) $(CFLAGS) -c $? -o $@
62$(LP64DIR)/vjcompress.o: ../modules/vjcompress.c
63	$(CC) $(CFLAGS) -c $? -o $@
64$(LP64DIR)/zlib.o:	../common/zlib.c
65	$(CC) $(CFLAGS) -c $? -o $@
66
67$(LP64DIR):
68	mkdir -m 755 -p $@
69
70install:
71	/usr/sbin/modunload -i 0
72	cp ppp ppp.conf /kernel/drv
73	cp ppp_comp ppp_ahdl /kernel/strmod
74	cp $(LP64DIR)/ppp /kernel/drv/$(LP64DIR)
75	cp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl /kernel/strmod/$(LP64DIR)
76	if grep clone:ppp /etc/minor_perm; then :; else \
77	  echo clone:ppp 0644 root sys >>/etc/minor_perm; fi
78	/usr/sbin/rem_drv ppp 2>/dev/null || true
79	/usr/sbin/modunload -i 0
80	/usr/sbin/add_drv ppp
81
82SRCS	= ppp.c ppp_mod.c ppp_ahdlc.c ppp_ahdlc_mod.c \
83	ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
84	../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
85
86lint:
87	$(LINT64) $(SRCS)
88
89lint-32:
90	$(LINT32) $(SRCS)
91
92clean:
93	$(MAKE) -f $(STD_MAKE) clean
94	rm -f $(LP64DIR)/ppp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl $(LP64DIR)/*.o $(LP64DIR)/*~ $(LP64DIR)/core
95