From 04fac81a8e797a95217279f02e54666aab354462 Mon Sep 17 00:00:00 2001 From: Lexxy Fox Date: Wed, 1 Nov 2023 10:10:05 -0500 Subject: [PATCH] initial commit, compiles --- .clang-format | 16 + .editorconfig | 8 + .gitignore | 7 + Makefile | 93 ++++ glut_wrap.h | 16 + glxgears.c | 406 ++++++++++++++ out.txt | 1485 +++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 2031 insertions(+) create mode 100644 .clang-format create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 glut_wrap.h create mode 100644 glxgears.c create mode 100644 out.txt diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..2a1d19a --- /dev/null +++ b/.clang-format @@ -0,0 +1,16 @@ +AlignAfterOpenBracket: BlockIndent +AlignConsecutiveMacros: true +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +BasedOnStyle: LLVM +IndentCaseLabels: true +IndentGotoLabels: true +IndentPPDirectives: BeforeHash +Language: Cpp +ReflowComments: true +RemoveBracesLLVM: true +SortIncludes: CaseInsensitive +TabWidth: 2 +UseTab: AlignWithSpaces + +# ex:se ft=yaml diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c5f9f51 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +[*] +charset = utf-8 +indent_size = 2 +indent_style = tab +insert_final_newline = true +trim_trailing_whitespace = true + +# ex:se ft=ini diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc70e62 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.d +*.i +*.o +*.s +sstrip +sstrip.1 +sstrip.1.gz \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7c89832 --- /dev/null +++ b/Makefile @@ -0,0 +1,93 @@ +prefix ?= /usr/local +exec_prefix ?= $(prefix) +bindir ?= $(exec_prefix)/bin +datarootdir ?= $(prefix)/share +datadir ?= $(datarootdir) +mandir ?= $(datarootdir)/man +man1dir ?= $(mandir)/man1 + +GZIP_PROG ?= gzip -cn9 +INSTALL ?= install -D +INSTALL_PROGRAM ?= $(INSTALL) +INSTALL_DATA ?= $(INSTALL) -m 644 +RM ?= rm -f + +CPPFLAGS := \ + -D_FORTIFY_SOURCE=2 \ + -DDATE=$(shell date '+%Y-%m-%d') \ + -DSSTRIP_VERSION=$(SSTRIP_VERSION) \ + $(CPPFLAGS) +OFLAGS := -O3 \ + -falign-functions=1 \ + -falign-jumps=1 \ + -falign-loops=1 \ + -fmerge-all-constants \ + -fno-asynchronous-unwind-tables \ + -fno-ident \ + -fno-plt \ + -fno-stack-protector \ + -fno-unwind-tables \ + -fomit-frame-pointer \ + -fwhole-program \ + $(OFLAGS) +WFLAGS := \ + -Wall \ + -Werror \ + -Wextra \ + -Wformat-security \ + -Wno-ignored-optimization-argument \ + -Wno-unknown-warning-option \ + -Wsuggest-attribute=const \ + -Wsuggest-attribute=format \ + -Wsuggest-attribute=noreturn \ + -Wsuggest-attribute=pure \ + $(WFLAGS) +CFLAGS := \ + -g0 \ + -MD \ + -MP \ + -pipe \ + $(OFLAGS) \ + $(WFLAGS) \ + $(CFLAGS) +LDFLAGS := \ + -Wl,--build-id=none \ + -Wl,--gc-sections \ + -Wl,-znoexecstack \ + -Wl,-znorelro \ + -Wl,-znoseparate-code \ + $(LDFLAGS) +LDLIBS := \ + -lGL \ + -lglut \ + -lm \ + -lX11 +MAKEFLAGS := \ + --jobs=$(shell nproc) \ + $(MAKEFLAGS) + +.PHONY: all clean install uninstall + +all: glxgears + +-include glxgears.d + +clean: + $(RM) glxgears glxgears.i glxgears.s glxgears.o + +$(DESTDIR)$(bindir)/glxgears: glxgears + $(INSTALL_PROGRAM) $< $@ + +install: $(DESTDIR)$(bindir)/glxgears + +uninstall: + $(RM) $(DESTDIR)$(bindir)/glxgears + +# References: +# https://archive.mesa3d.org/demos +# https://gitlab.freedesktop.org/mesa/demos/-/blob/main/src/demos/gears.c +# https://www.gnu.org/prep/standards/html_node/Command-Variables.html +# https://www.gnu.org/prep/standards/html_node/Directory-Variables.html +# https://www.gnu.org/prep/standards/html_node/Standard-Targets.html +# https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html +# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html \ No newline at end of file diff --git a/glut_wrap.h b/glut_wrap.h new file mode 100644 index 0000000..fa1b8f9 --- /dev/null +++ b/glut_wrap.h @@ -0,0 +1,16 @@ +#ifndef GLUT_WRAP_H +#define GLUT_WRAP_H + +#ifdef HAVE_FREEGLUT +# include +#elif defined __APPLE__ +# include +#else +# include +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#endif /* ! GLUT_WRAP_H */ diff --git a/glxgears.c b/glxgears.c new file mode 100644 index 0000000..938ed21 --- /dev/null +++ b/glxgears.c @@ -0,0 +1,406 @@ +/* + * 3-D gear wheels. This program is in the public domain. + * + * Command line options: + * -info print GL implementation information + * -exit automatically exit after 30 seconds + * -noanim turn off animation + * + * + * Brian Paul + */ + +/* Conversion to GLUT by Mark J. Kilgard */ + + + +#include +#include +#include +#include +#include "glut_wrap.h" + +static GLint T0 = 0; +static GLint Frames = 0; +static GLint autoexit = 0; +static GLint win = 0; +static GLboolean Visible = GL_TRUE; +static GLboolean Animate = GL_TRUE; +static GLfloat viewDist = 40.0; + + +/** + + Draw a gear wheel. You'll probably want to call this function when + building a display list since we do a lot of trig here. + + Input: inner_radius - radius of hole at center + outer_radius - radius at center of teeth + width - width of gear + teeth - number of teeth + tooth_depth - depth of tooth + + **/ + +static void +gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, + GLint teeth, GLfloat tooth_depth) +{ + GLint i; + GLfloat r0, r1, r2; + GLfloat angle, da; + GLfloat u, v, len; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + da = 2.0 * M_PI / teeth / 4.0; + + glShadeModel(GL_FLAT); + + glNormal3f(0.0, 0.0, 1.0); + + /* draw front face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + if (i < teeth) { + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + } + } + glEnd(); + + /* draw front sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + } + glEnd(); + + glNormal3f(0.0, 0.0, -1.0); + + /* draw back face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + if (i < teeth) { + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + } + } + glEnd(); + + /* draw back sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw outward faces of teeth */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + u = r2 * cos(angle + da) - r1 * cos(angle); + v = r2 * sin(angle + da) - r1 * sin(angle); + len = sqrt(u * u + v * v); + u /= len; + v /= len; + glNormal3f(v, -u, 0.0); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); + u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); + v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); + glNormal3f(v, -u, 0.0); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + } + + glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); + glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); + + glEnd(); + + glShadeModel(GL_SMOOTH); + + /* draw inside radius cylinder */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glNormal3f(-cos(angle), -sin(angle), 0.0); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + } + glEnd(); + +} + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static GLint gear1, gear2, gear3; +static GLfloat angle = 0.0; + +static void +cleanup(void) +{ + glDeleteLists(gear1, 1); + glDeleteLists(gear2, 1); + glDeleteLists(gear3, 1); + glutDestroyWindow(win); +} + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + + glTranslatef(0.0, 0.0, -viewDist); + + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + glCallList(gear1); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + glCallList(gear2); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + glCallList(gear3); + glPopMatrix(); + + glPopMatrix(); + + glutSwapBuffers(); + + Frames++; + + { + GLint t = glutGet(GLUT_ELAPSED_TIME); + if (t - T0 >= 5000) { + GLfloat seconds = (t - T0) / 1000.0; + GLfloat fps = Frames / seconds; + printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps); + fflush(stdout); + T0 = t; + Frames = 0; + if ((t >= 999.0 * autoexit) && (autoexit)) { + cleanup(); + exit(0); + } + } + } +} + + +static void +idle(void) +{ + static double t0 = -1.; + double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0; + if (t0 < 0.0) + t0 = t; + dt = t - t0; + t0 = t; + + angle += 70.0 * dt; /* 70 degrees per second */ + angle = fmod(angle, 360.0); /* prevents eventual overflow */ + + glutPostRedisplay(); +} + +static void +update_idle_func(void) +{ + if (Visible && Animate) + glutIdleFunc(idle); + else + glutIdleFunc(NULL); +} + +/* change view angle, exit upon ESC */ +/* ARGSUSED1 */ +static void +key(unsigned char k, int x, int y) +{ + switch (k) { + case 'z': + view_rotz += 5.0; + break; + case 'Z': + view_rotz -= 5.0; + break; + case 'd': + viewDist += 1.0; + break; + case 'D': + viewDist -= 1.0; + break; + case 'a': + Animate = !Animate; + update_idle_func(); + break; + case 27: /* Escape */ + cleanup(); + exit(0); + break; + default: + return; + } + glutPostRedisplay(); +} + +/* change view angle */ +/* ARGSUSED1 */ +static void +special(int k, int x, int y) +{ + switch (k) { + case GLUT_KEY_UP: + view_rotx += 5.0; + break; + case GLUT_KEY_DOWN: + view_rotx -= 5.0; + break; + case GLUT_KEY_LEFT: + view_roty += 5.0; + break; + case GLUT_KEY_RIGHT: + view_roty -= 5.0; + break; + default: + return; + } + glutPostRedisplay(); +} + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat h = (GLfloat) height / (GLfloat) width; + + glViewport(0, 0, (GLint) width, (GLint) height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-1.0, 1.0, -h, h, 5.0, 200.0); + glMatrixMode(GL_MODELVIEW); +} + +static void +init(int argc, char *argv[]) +{ + static GLfloat pos[4] = {5.0, 5.0, 10.0, 0.0}; + static GLfloat red[4] = {0.8, 0.1, 0.0, 1.0}; + static GLfloat green[4] = {0.0, 0.8, 0.2, 1.0}; + static GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0}; + GLint i; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + + /* make the gears */ + gear1 = glGenLists(1); + glNewList(gear1, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); + gear(1.0, 4.0, 1.0, 20, 0.7); + glEndList(); + + gear2 = glGenLists(1); + glNewList(gear2, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); + gear(0.5, 2.0, 2.0, 10, 0.7); + glEndList(); + + gear3 = glGenLists(1); + glNewList(gear3, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); + gear(1.3, 2.0, 0.5, 10, 0.7); + glEndList(); + + glEnable(GL_NORMALIZE); + + for ( i=1; i +# This is free software: you are free to change and redistribute it. +# There is NO WARRANTY, to the extent permitted by law. + +# Make data base, printed on Tue Oct 31 23:43:35 2023 + +# Variables + +# default +PREPROCESS.S = $(CC) -E $(CPPFLAGS) +# default +COMPILE.m = $(OBJC) $(OBJCFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c +# makefile (from 'Makefile', line 16) +INSTALL_PROGRAM = $(INSTALL) +# default +ARFLAGS = rv +# default +AS = as +# environment +GNOME_SHELL_SESSION_MODE = pop +# environment +SSH_AGENT_LAUNCHER = gnome-keyring +# default +AR = ar +# default +OBJC = cc +# environment +MANDATORY_PATH = /usr/share/gconf/pop.mandatory.path +# default +LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH) +# environment +WINDOWPATH = 2 +# default +LINK.s = $(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH) +# makefile (from 'Makefile', line 6) +prefix = /usr/local +# environment +LIBVIRT_DEFAULT_URI = qemu:///system +# default +MAKE_COMMAND := make +# environment +QT_ACCESSIBILITY = 1 +# automatic +@D = $(patsubst %/,%,$(dir $@)) +# default +COFLAGS = +# default +COMPILE.mod = $(M2C) $(M2FLAGS) $(MODFLAGS) $(TARGET_ARCH) +# default +.VARIABLES := +# environment +PWD = /home/lexxy/Documents/ARCHIVE/C Projects/glxgears +# automatic +%D = $(patsubst %/,%,$(dir $%)) +# makefile (from 'Makefile', line 10) +datadir = $(datarootdir) +# environment +XDG_DATA_DIRS = /usr/share/pop:/usr/share/gnome:/home/lexxy/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/ +# default +LINK.o = $(CC) $(LDFLAGS) $(TARGET_ARCH) +# environment +OLDPWD = /home/lexxy/Documents/ARCHIVE/C Projects/super-strip +# default +TEXI2DVI = texi2dvi +# automatic +^D = $(patsubst %/,%,$(dir $^)) +# automatic +%F = $(notdir $%) +# default +LEX.l = $(LEX) $(LFLAGS) -t +# environment +LANG = en_US.UTF-8 +# environment +XAUTHORITY = /run/user/1000/gdm/Xauthority +# default +.LOADED := +# default +.INCLUDE_DIRS = /usr/local/include /usr/include /usr/include +# makefile (from 'Makefile', line 11) +mandir = $(datarootdir)/man +# default +COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c +# environment +GNOME_TERMINAL_SERVICE = :1.113 +# makefile +MAKEFLAGS = p -j16 --jobserver-auth=3,4 +# default +LINK.f = $(FC) $(FFLAGS) $(LDFLAGS) $(TARGET_ARCH) +# makefile (from 'Makefile', line 18) +M4 = m4 +# default +TANGLE = tangle +# makefile +CURDIR := /home/lexxy/Documents/ARCHIVE/C Projects/glxgears +# default +PREPROCESS.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -F +# environment +LESSOPEN = | /usr/bin/lesspipe %s +# automatic +*D = $(patsubst %/,%,$(dir $*)) +# environment +MFLAGS = -p -j16 --jobserver-auth=3,4 +# environment +SSH_AUTH_SOCK = /run/user/1000/keyring/ssh +# default +.SHELLFLAGS := -c +# default +M2C = m2c +# default +COMPILE.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c +# default +COMPILE.cpp = $(COMPILE.cc) +# default +TEX = tex +# environment +XDG_CONFIG_DIRS = /etc/xdg/xdg-pop:/etc/xdg +# automatic ++D = $(patsubst %/,%,$(dir $+)) +# environment +XDG_SESSION_DESKTOP = pop +# makefile (from 'glxgears.d', line 1) +MAKEFILE_LIST := Makefile glxgears.d +# default +F77FLAGS = $(FFLAGS) +# automatic +@F = $(notdir $@) +# environment +XDG_SESSION_TYPE = x11 +# automatic +?D = $(patsubst %/,%,$(dir $?)) +# default +COMPILE.def = $(M2C) $(M2FLAGS) $(DEFFLAGS) $(TARGET_ARCH) +# default +CTANGLE = ctangle +# makefile (from 'Makefile', line 15) +INSTALL = install -D +# makefile (from 'Makefile', line 12) +man1dir = $(mandir)/man1 +# environment +SESSION_MANAGER = local/foxbox:@/tmp/.ICE-unix/1901,unix/foxbox:/tmp/.ICE-unix/1901 +# automatic +*F = $(notdir $*) +# environment +DBUS_SESSION_BUS_ADDRESS = unix:path=/run/user/1000/bus +# automatic + $*.c + $(LINT.c) -i $*.c -o $@ + $(RM) $*.c + +%.c: %.l +# recipe to execute (built-in): + @$(RM) $@ + $(LEX.l) $< > $@ + +%.r: %.l +# recipe to execute (built-in): + $(LEX.l) $< > $@ + mv -f lex.yy.r $@ + +%.ym: + +%.m: %.ym +# recipe to execute (built-in): + $(YACC.m) $< + mv -f y.tab.c $@ + +%.yl: + +%.s: + +%: %.s +# recipe to execute (built-in): + $(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +%.o: %.s +# recipe to execute (built-in): + $(COMPILE.s) -o $@ $< + +%.S: + +%: %.S +# recipe to execute (built-in): + $(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +%.o: %.S +# recipe to execute (built-in): + $(COMPILE.S) -o $@ $< + +%.s: %.S +# recipe to execute (built-in): + $(PREPROCESS.S) $< > $@ + +%.mod: + +%: %.mod +# recipe to execute (built-in): + $(COMPILE.mod) -o $@ -e $@ $^ + +%.o: %.mod +# recipe to execute (built-in): + $(COMPILE.mod) -o $@ $< + +%.sym: + +%.def: + +%.sym: %.def +# recipe to execute (built-in): + $(COMPILE.def) -o $@ $< + +%.h: + +%.info: + +%.dvi: + +%.tex: + +%.dvi: %.tex +# recipe to execute (built-in): + $(TEX) $< + +%.texinfo: + +%.info: %.texinfo +# recipe to execute (built-in): + $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ + +%.dvi: %.texinfo +# recipe to execute (built-in): + $(TEXI2DVI) $(TEXI2DVI_FLAGS) $< + +%.texi: + +%.info: %.texi +# recipe to execute (built-in): + $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ + +%.dvi: %.texi +# recipe to execute (built-in): + $(TEXI2DVI) $(TEXI2DVI_FLAGS) $< + +%.txinfo: + +%.info: %.txinfo +# recipe to execute (built-in): + $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ + +%.dvi: %.txinfo +# recipe to execute (built-in): + $(TEXI2DVI) $(TEXI2DVI_FLAGS) $< + +%.w: + +%.c: %.w +# recipe to execute (built-in): + $(CTANGLE) $< - $@ + +%.tex: %.w +# recipe to execute (built-in): + $(CWEAVE) $< - $@ + +%.ch: + +%.web: + +%.p: %.web +# recipe to execute (built-in): + $(TANGLE) $< + +%.tex: %.web +# recipe to execute (built-in): + $(WEAVE) $< + +%.sh: + +%: %.sh +# recipe to execute (built-in): + cat $< >$@ + chmod a+x $@ + +%.elc: + +%.el: + +(%): % +# recipe to execute (built-in): + $(AR) $(ARFLAGS) $@ $< + +%.out: % +# recipe to execute (built-in): + @rm -f $@ + cp $< $@ + +%.c: %.w %.ch +# recipe to execute (built-in): + $(CTANGLE) $^ $@ + +%.tex: %.w %.ch +# recipe to execute (built-in): + $(CWEAVE) $^ $@ + +%:: %,v +# recipe to execute (built-in): + $(CHECKOUT,v) + +%:: RCS/%,v +# recipe to execute (built-in): + $(CHECKOUT,v) + +%:: RCS/% +# recipe to execute (built-in): + $(CHECKOUT,v) + +%:: s.% +# recipe to execute (built-in): + $(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $< + +%:: SCCS/s.% +# recipe to execute (built-in): + $(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $< + +# 92 implicit rules, 5 (5.4%) terminal. +# Files + +# Not a target: +.cpp: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.c.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.c) $(OUTPUT_OPTION) $< + +/usr/include/x86_64-linux-gnu/bits/time64.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +/usr/include/x86_64-linux-gnu/bits/long-double.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.h: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.sh: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + cat $< >$@ + chmod a+x $@ + +# Not a target: +.ch: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.r.f: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(PREPROCESS.r) $(OUTPUT_OPTION) $< + +# Not a target: +.dvi: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.def.sym: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.def) -o $@ $< + +# Not a target: +.m.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.m) $(OUTPUT_OPTION) $< + +# Not a target: +.lm.m: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + @$(RM) $@ + $(LEX.m) $< > $@ + +# Not a target: +.p.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.p) $(OUTPUT_OPTION) $< + +# Not a target: +.texinfo: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.ln: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.C: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.C) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +/usr/include/x86_64-linux-gnu/bits/types.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.web: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.elc: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.y.ln: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(YACC.y) $< + $(LINT.c) -C$* y.tab.c + $(RM) y.tab.c + +# Not a target: +.l.c: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + @$(RM) $@ + $(LEX.l) $< > $@ + +# Not a target: +glxgears.c: +# Implicit rule search has been done. +# Last modified 2023-10-31 23:17:21.05032035 +# File has been updated. +# Successfully updated. + +# Not a target: +Makefile: +# Implicit rule search has been done. +# Last modified 2023-10-31 23:19:13.479699238 +# File has been updated. +# Successfully updated. + +# Not a target: +.sym: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.r.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.r) $(OUTPUT_OPTION) $< + +# Not a target: +.mod: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.mod) -o $@ -e $@ $^ + +# Not a target: +.def: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.S: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.texi.dvi: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(TEXI2DVI) $(TEXI2DVI_FLAGS) $< + +/usr/include/features-time64.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.txinfo.dvi: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(TEXI2DVI) $(TEXI2DVI_FLAGS) $< + +uninstall: +# Phony target (prerequisite of .PHONY). +# Implicit rule search has not been done. +# File does not exist. +# File has not been updated. +# recipe to execute (from 'Makefile', line 88): + $(RM) $(DESTDIR)$(bindir)/sstrip $(DESTDIR)$(man1dir)/sstrip.1.gz + +# Not a target: +.y.c: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(YACC.y) $< + mv -f y.tab.c $@ + +clean: +# Phony target (prerequisite of .PHONY). +# Implicit rule search has not been done. +# File does not exist. +# File has not been updated. +# recipe to execute (from 'Makefile', line 77): + $(RM) sstrip sstrip.1 sstrip.1.gz sstrip.i sstrip.s sstrip.o + +# Not a target: +.cpp.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.cpp) $(OUTPUT_OPTION) $< + +# Not a target: +.el: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.cc: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.tex: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.m: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.m) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +/usr/include/features.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.F: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.web.tex: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(WEAVE) $< + +# Not a target: +.texinfo.info: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ + +# Not a target: +.ym.m: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(YACC.m) $< + mv -f y.tab.c $@ + +/usr/include/x86_64-linux-gnu/bits/timesize.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +glxgears.d: +# Implicit rule search has been done. +# Last modified 2023-10-31 23:40:50.543199408 +# File has been updated. +# Successfully updated. + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.l: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.f: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.texi: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.DEFAULT: +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.r: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.r) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.a: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +all: glxgears +# Phony target (prerequisite of .PHONY). +# Implicit rule search has not been done. +# File does not exist. +# File has been updated. +# Successfully updated. + +# Not a target: +.w.tex: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(CWEAVE) $< - $@ + +# Not a target: +.s.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.s) -o $@ $< + +# Not a target: +.txinfo: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.c.ln: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINT.c) -C$* $< + +# Not a target: +.tex.dvi: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(TEX) $< + +# Not a target: +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.info: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.out: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.texinfo.dvi: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(TEXI2DVI) $(TEXI2DVI_FLAGS) $< + +/usr/include/stdc-predef.h: +# Implicit rule search has been done. +# Last modified 2023-09-25 09:45:50 +# File has been updated. +# Successfully updated. + +# Not a target: +.F.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.F) $(OUTPUT_OPTION) $< + +# Not a target: +.yl: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.s: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.S.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.S) -o $@ $< + +# Not a target: +.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +install-strip: install +# Phony target (prerequisite of .PHONY). +# Implicit rule search has not been done. +# File does not exist. +# File has not been updated. +# recipe to execute (from 'Makefile', line 85): + ./sstrip -z $(DESTDIR)$(bindir)/sstrip + +# Not a target: +.C.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.C) $(OUTPUT_OPTION) $< + +install: /usr/local/bin/sstrip install-man +# Phony target (prerequisite of .PHONY). +# Implicit rule search has not been done. +# File does not exist. +# File has not been updated. + +# Not a target: +.c: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.txinfo.info: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ + +# Not a target: +.texi.info: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ + +# Not a target: +.y: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +install-man: +# Phony target (prerequisite of .PHONY). +# Implicit rule search has not been done. +# File does not exist. +# File has not been updated. + +# Not a target: +.l.r: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LEX.l) $< > $@ + mv -f lex.yy.r $@ + +glxgears: glxgears.c /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdc-predef.h /usr/include/x86_64-linux-gnu/bits/types.h /usr/include/features.h /usr/include/features-time64.h /usr/include/x86_64-linux-gnu/bits/wordsize.h /usr/include/x86_64-linux-gnu/bits/timesize.h /usr/include/x86_64-linux-gnu/sys/cdefs.h /usr/include/x86_64-linux-gnu/bits/long-double.h /usr/include/x86_64-linux-gnu/gnu/stubs.h /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/x86_64-linux-gnu/bits/time64.h +# Implicit rule search has been done. +# Implicit/static pattern stem: 'glxgears' +# Last modified 2023-10-31 23:40:50.435198137 +# File has been updated. +# Successfully updated. +# recipe to execute (built-in): + $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +# Not a target: +.p: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(LINK.p) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +/usr/local/bin/sstrip: sstrip +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (from 'Makefile', line 80): + $(INSTALL_PROGRAM) $< $@ + +# Not a target: +.l.ln: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + @$(RM) $*.c + $(LEX.l) $< > $*.c + $(LINT.c) -i $*.c -o $@ + $(RM) $*.c + +# Not a target: +.w: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.SUFFIXES: .out .a .ln .o .c .cc .C .cpp .p .f .F .m .r .y .l .ym .yl .s .S .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo .w .ch .web .sh .elc .el +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +.PHONY: all clean install install-man install-strip uninstall +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.mod.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.mod) -o $@ $< + +# Not a target: +.web.p: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(TANGLE) $< + +# Not a target: +.S.s: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(PREPROCESS.S) $< > $@ + +# Not a target: +.f.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.f) $(OUTPUT_OPTION) $< + +# Not a target: +.ym: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.cc.o: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(COMPILE.cc) $(OUTPUT_OPTION) $< + +# Not a target: +.F.f: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(PREPROCESS.F) $(OUTPUT_OPTION) $< + +# Not a target: +sstrip: +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. + +# Not a target: +.w.c: +# Builtin rule +# Implicit rule search has not been done. +# Modification time never checked. +# File has not been updated. +# recipe to execute (built-in): + $(CTANGLE) $< - $@ + +# files hash-table stats: +# Load=98/1024=10%, Rehash=0, Collisions=203/1795=11% +# VPATH Search Paths + +# No 'vpath' search paths. + +# No general ('VPATH' variable) search path. + +# strcache buffers: 2 (1) / strings = 1029 / storage = 14530 B / avg = 14 B +# current buf: size = 8162 B / used = 6374 B / count = 428 / avg = 14 B +# other used: total = 8156 B / count = 601 / avg = 13 B +# other free: total = 6 B / max = 6 B / min = 6 B / avg = 6 B + +# strcache performance: lookups = 1414 / hit rate = 27% +# hash-table stats: +# Load=1029/8192=13%, Rehash=0, Collisions=81/1414=6% +# Finished Make data base on Tue Oct 31 23:43:35 2023 +