2

I have just recently made the switched for Linux to OpenBSD. So far, I am really liking the philosophy of including the bare minimum needed to run the system, and the emphasis for clean and simple code. However, I face a small problem. I am a programmer, and at the moment I am experimenting with and learning how to use the OpenGL API. Unlike Linux, however, there is no /usr/include/GL or /usr/local/include/GL. I am using the Intel graphics driver, as shown by screenfetch and dmesg. How would I install the Mesa/OpenGL API header files?

3
  • Did you install graphics/freeglut? Commented May 1, 2018 at 11:23
  • @uzsolt Yes, but that installed the freeglut headers only, not the complete GL header packages. Commented May 1, 2018 at 11:47
  • And the mesa package? Commented May 1, 2018 at 14:38

3 Answers 3

2

Please read hier(7). Xenocara (OpenBSD's Xorg) sits in /usr/X11R6. It even should have separate partition.

BSD Make tend to use mk-files. Special files in /usr/share/mk. Some of then include /usr/X11R6/share/mk. You can find X11BASE variable there to include it into your Makefile.

PS: Some people suggest /usr/local/include. Please note that OpenBSD has very clean distinction between base system and third party software.

/usr/X11R6 is part of base system. It never goes to /usr/local. But ony third party software (vim, kde, python) always goes to /usr/local/. So:

  • /usr/include: base system (except Xenocara)
  • /usr/X11R6/include: base system (Xenocara)
  • /usr/local/include: third party software.
1

I believe that the headers you may be looking for are located in /usr/X11R6/include/GL. This where gl.h, glx.h and glu.h (and others) live on a vanilla OpenBSD system.

You may use pkg-config in your Makefile. The compiler flags needed for the standard OpenBSD Mesa are given by

pkg-config --cflags osmesa

(returns -I/usr/X11R6/include)

And likewise for GL:

pkg-config --cflags gl

(returns -I/usr/X11R6/include -I/usr/X11R6/include/libdrm)

See the pkg-config(1)manual .

0

Try including the headers from /usr/include, /usr/X11R6/include and /usr/local/include.

You must log in to answer this question.