summaryrefslogtreecommitdiff
path: root/Makeconf
blob: 6b79cf03cf2e23829e8135548a355a64ed71ae64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Generic configuration for Hurd compilation

all:

# This is the directory into which Hurd cross-building tools are placed
hurdinst := /home/gd3/hurdinst

# This is the directory which serves as root for the Hurd.
hostname := $(shell hostname)
hurdroot-douglas.gnu.ai.mit.edu = /home/hm2/hurdroot
hurdroot-ernst.gnu.ai.mit.edu = /home/hm1/hurdroot
hurdroot := $(hurdroot-$(hostname))

# This is the device with the filesystem mounted as $(hurdroot)
hurdrootdev := /dev/hd0f

# This is the directory containing the top-level Hurd source (and this file).
hurdsource := /home/gd3/gnu/hurd

# Where to find various things for compilation:
includedir := $(hurdinst)/include
startup := $(hurdinst)/lib/crt0.o
libc := $(hurdinst)/lib/hurdrlimit.o \
	$(patsubst %,$(hurdinst)/lib/lib%.a,c machuser hurduser c hurduser)
libthreads := $(hurdinst)/lib/libthreads.a
libports := $(hurdinst)/lib/libports.a
libioserver := $(hurdinst)/lib/libioserver.a
libpager := $(hurdinst)/lib/libpager.a
libfshelp := $(hurdinst)/lib/libfshelp.a
libdiskfs := $(hurdinst)/lib/libdiskfs.a
libtrivfs := $(hurdinst)/lib/libtrivfs.a
malloc := $(hurdinst)/lib/libmalloc.a

# Finding binaries
include $(hurdsource)/Maketools

gccheaders = /usr/local/lib/gcc-lib/$(CCTARGET)/$(CCVERSION)/include
libgcc := /usr/local/lib/gcc-lib/$(CCTARGET)/$(CCVERSION)/libgcc.a

# Flags for compilation.  It is important to have -I. first for things that
# use their own headers which are later installed; they might do `#include
# <foo.h>' and that ignores the current directory.
CPPFLAGS := -nostdinc -I. -I$(includedir) -I$(gccheaders)
CFLAGS := -Wall -Wno-parentheses -g

# How to do some things:

ldflags = $(addprefix -Xlinker ,$(LDFLAGS)) 

define link
$(LD) -e __start $(LDFLAGS) -o $@ $(startup) \
$(OBJS) $(LIBS) -u _malloc $(malloc) $(libc) $(libgcc)
endef

# Mounting $(hurdroot)
ifeq ($(hurdroot),)
$(hurdroot): force
	@echo Cannot do install on this machine.
	false
else
$(hurdroot): $(hurdroot)/mounted
$(hurdroot)/mounted:
	fsck -p $(hurdrootdev)
	mount $(hurdrootdev)
endif


# Making a snapshot

lndist: $(DIST_FILES) $(hurdsource)/hurd-snap/$(dir) FORCE
	ln $(DIST_FILES) $(hurdsource)/hurd-snap/$(dir)
 
ifeq ($(dir),.)
$(hurdsource)/hurd-snap/$(dir):
else
$(hurdsource)/hurd-snap/$(dir):
	mkdir $(hurdsource)/hurd-snap/$(dir)
endif


# Dependencies for building libraries

ifneq ($(strip $(dir)),libports)
$(libports): FORCE
	$(MAKE) -C $(hurdsource)/libports $(libports)
$(includedir)/hurd/ports.h: FORCE
	$(MAKE) -C $(hurdsource)/libports $(includedir)/hurd/ports.h
endif

ifneq ($(strip $(dir)),libioserver)
$(libioserver): FORCE
	$(MAKE) -C $(hurdsource)/libioserver $(libioserver)
$(includedir)/hurd/ioserver.h: FORCE
	$(MAKE) -C $(hurdsource)/libioserver $(includedir)/hurd/ioserver.h
endif

ifneq ($(strip $(dir)),libpager)
$(libpager): FORCE
	$(MAKE) -C $(hurdsource)/libpager $(libpager)
$(includedir)/hurd/pager.h: FORCE
	$(MAKE) -C $(hurdsource)/libpager $(includedir)/hurd/pager.h
endif

ifneq ($(strip $(dir)),libdiskfs)
$(libdiskfs): FORCE
	$(MAKE) -C $(hurdsource)/libdiskfs $(libdiskfs)
$(includedir)/hurd/diskfs.h: FORCE
	$(MAKE) -C $(hurdsource)/libdiskfs $(includedir)/hurd/diskfs.h
endif

ifneq ($(strip $(dir)),libfshelp)
$(libfshelp): FORCE
	$(MAKE) -C $(hurdsource)/libfshelp $(libfshelp)
$(includedir)/hurd/fshelp.h: FORCE
	$(MAKE) -C $(hurdsource)/libfshelp $(includedir)/hurd/fshelp.h
endif

ifneq ($(strip $(dir)),libtrivfs)
$(libtrivfs): FORCE
	$(MAKE) -C $(hurdsource)/libtrivfs $(libtrivfs)
$(includedir)/hurd/trivfs.h: FORCE
	$(MAKE) -C $(hurdsource)/libtrivfs $(includedir)/hurd/trivfs.h
endif

ifneq ($(strip $(dir)),libthreads)
$(libthreads): FORCE
	$(MAKE) -C $(hurdsource)/libthreads $(libthreads)
$(includedir)/cthreads.h: FORCE
	$(MAKE) -C $(hurdsource)/libthreads $(includedir)/cthreads.h
$(includedir)/machine/cthreads.h: FORCE
	$(MAKE) -C $(hurdsource)/libthreads $(includedir)/machine/cthreads.h
endif

FORCE: