summaryrefslogtreecommitdiff
path: root/README
blob: 5af1b166129b8e655ab2af3723c25226c3480415 (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

This is a skeleton of an "ON" (illumos) build.

You can use it to build drivers, libraries, and commands,
that you might plan to later integrate into illumos, but
don't want to wait for full illumos builds while you're
developing your code.

As provided, this skeleton builds one driver, one library,
and one command, all named "foo".  These are intentionally
trivial objects, just to demonstrate how it builds.

The Makefile here is a wrappter to build the whole gate
in a few separate steps.  All steps use the command:
	bldenv myenv.sh "cd ...; make"
to setup the environment expected by the gate and
run make in the necessary places to build it all.
The rapper makefile supports three targets:
	make install
	make package
	make clean

Here is a list of all the places you might want to copy
to add another driver, library, or command:

	uts/common/sys/foo.h
	uts/common/io/foo/*
	uts/common/Makefile.files	(FOO_OBJS += foo.o)
	uts/common/Makefile.rules	(common/io/foo, two places)
	uts/intel/Makefile.intel.shared	(DRV_KMODS += foo)
	uts/intel/foo/Makefile
	uts/sparc/Makefile.sparc.shared	(DRV_KMODS += foo)
	uts/sparc/foo/Makefile

	lib/libfoo/Makefile
	lib/libfoo/Makefile.com
	lib/libfoo/*/Makefile
	lib/libfoo/common/*

	cmd/foo

	man/man1/foo.1
	man/man3x/libfoo.3x
	man/man7/foo.7

For more information about developing device drivers for illumos, please read this document: 
https://illumos.org/books/wdd/eqbqn.html