st now runs on Linux, OpenBSD and FreeBSD.
This commit is contained in:
		
							parent
							
								
									c563328571
								
							
						
					
					
						commit
						6db6980e27
					
				
							
								
								
									
										5
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										5
									
								
								Makefile
								
								
								
								
							| 
						 | 
					@ -10,6 +10,7 @@ all: options st
 | 
				
			||||||
 | 
					
 | 
				
			||||||
options:
 | 
					options:
 | 
				
			||||||
	@echo st build options:
 | 
						@echo st build options:
 | 
				
			||||||
 | 
						@echo "SYSTEM   = ${SYSTEM}"
 | 
				
			||||||
	@echo "CFLAGS   = ${CFLAGS}"
 | 
						@echo "CFLAGS   = ${CFLAGS}"
 | 
				
			||||||
	@echo "LDFLAGS  = ${LDFLAGS}"
 | 
						@echo "LDFLAGS  = ${LDFLAGS}"
 | 
				
			||||||
	@echo "CC       = ${CC}"
 | 
						@echo "CC       = ${CC}"
 | 
				
			||||||
| 
						 | 
					@ -31,7 +32,7 @@ clean:
 | 
				
			||||||
dist: clean
 | 
					dist: clean
 | 
				
			||||||
	@echo creating dist tarball
 | 
						@echo creating dist tarball
 | 
				
			||||||
	@mkdir -p st-${VERSION}
 | 
						@mkdir -p st-${VERSION}
 | 
				
			||||||
	@cp -R LICENSE Makefile README config.mk st.h ${SRC} st-${VERSION}
 | 
						@cp -R LICENSE Makefile README config.mk config.h st.info ${SRC} st-${VERSION}
 | 
				
			||||||
	@tar -cf st-${VERSION}.tar st-${VERSION}
 | 
						@tar -cf st-${VERSION}.tar st-${VERSION}
 | 
				
			||||||
	@gzip st-${VERSION}.tar
 | 
						@gzip st-${VERSION}.tar
 | 
				
			||||||
	@rm -rf st-${VERSION}
 | 
						@rm -rf st-${VERSION}
 | 
				
			||||||
| 
						 | 
					@ -41,7 +42,7 @@ install: all
 | 
				
			||||||
	@mkdir -p ${DESTDIR}${PREFIX}/bin
 | 
						@mkdir -p ${DESTDIR}${PREFIX}/bin
 | 
				
			||||||
	@cp -f st ${DESTDIR}${PREFIX}/bin
 | 
						@cp -f st ${DESTDIR}${PREFIX}/bin
 | 
				
			||||||
	@chmod 755 ${DESTDIR}${PREFIX}/bin/st
 | 
						@chmod 755 ${DESTDIR}${PREFIX}/bin/st
 | 
				
			||||||
	@tic st.info
 | 
						@tic -s st.info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uninstall:
 | 
					uninstall:
 | 
				
			||||||
	@echo removing executable file from ${DESTDIR}${PREFIX}/bin
 | 
						@echo removing executable file from ${DESTDIR}${PREFIX}/bin
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								config.mk
								
								
								
								
							
							
						
						
									
										13
									
								
								config.mk
								
								
								
								
							| 
						 | 
					@ -12,16 +12,17 @@ X11LIB = /usr/X11R6/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# includes and libs
 | 
					# includes and libs
 | 
				
			||||||
INCS = -I. -I/usr/include -I${X11INC}
 | 
					INCS = -I. -I/usr/include -I${X11INC}
 | 
				
			||||||
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
 | 
					LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lutil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# uncomment your system #
 | 
				
			||||||
 | 
					#SYSTEM = -DLINUX
 | 
				
			||||||
 | 
					#SYSTEM = -DOPENBSD
 | 
				
			||||||
 | 
					#SYSTEM = -DFREEBSD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# flags
 | 
					# flags
 | 
				
			||||||
CPPFLAGS = -DVERSION=\"${VERSION}\"
 | 
					CPPFLAGS = -DVERSION=\"${VERSION}\" ${SYSTEM}
 | 
				
			||||||
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
 | 
					CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
 | 
				
			||||||
LDFLAGS = -s ${LIBS}
 | 
					LDFLAGS = -s ${LIBS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Solaris
 | 
					 | 
				
			||||||
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
 | 
					 | 
				
			||||||
#LDFLAGS = ${LIBS}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# compiler and linker
 | 
					# compiler and linker
 | 
				
			||||||
CC = cc
 | 
					CC = cc
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								st.c
								
								
								
								
							
							
						
						
									
										25
									
								
								st.c
								
								
								
								
							| 
						 | 
					@ -20,6 +20,14 @@
 | 
				
			||||||
#include <X11/keysym.h>
 | 
					#include <X11/keysym.h>
 | 
				
			||||||
#include <X11/Xutil.h>
 | 
					#include <X11/Xutil.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if   defined(LINUX)
 | 
				
			||||||
 | 
					 #include <pty.h>
 | 
				
			||||||
 | 
					#elif defined(OPENBSD)
 | 
				
			||||||
 | 
					 #include <util.h>
 | 
				
			||||||
 | 
					#elif defined(FREEBSD)
 | 
				
			||||||
 | 
					 #include <libutil.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Arbitrary sizes */
 | 
					/* Arbitrary sizes */
 | 
				
			||||||
#define ESC_TITLE_SIZ 256
 | 
					#define ESC_TITLE_SIZ 256
 | 
				
			||||||
#define ESC_BUF_SIZ   256
 | 
					#define ESC_BUF_SIZ   256
 | 
				
			||||||
| 
						 | 
					@ -242,19 +250,12 @@ sigchld(int a) {
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
ttynew(void) {
 | 
					ttynew(void) {
 | 
				
			||||||
	int m, s;
 | 
						int m, s;
 | 
				
			||||||
	char *pts;
 | 
						
 | 
				
			||||||
 | 
						/* seems to work fine on linux, openbsd and freebsd */
 | 
				
			||||||
 | 
						struct winsize w = {term.row, term.col, 0, 0};
 | 
				
			||||||
 | 
						if(openpty(&m, &s, NULL, NULL, &w) < 0)
 | 
				
			||||||
 | 
							die("openpty failed: %s\n", SERRNO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if((m = posix_openpt(O_RDWR | O_NOCTTY)) < 0)
 | 
					 | 
				
			||||||
		die("openpt failed: %s\n", SERRNO);
 | 
					 | 
				
			||||||
	if(grantpt(m) < 0)
 | 
					 | 
				
			||||||
		die("grantpt failed: %s\n", SERRNO);
 | 
					 | 
				
			||||||
	if(unlockpt(m) < 0)
 | 
					 | 
				
			||||||
		die("unlockpt failed: %s\n", SERRNO);
 | 
					 | 
				
			||||||
	if(!(pts = ptsname(m)))
 | 
					 | 
				
			||||||
		die("ptsname failed: %s\n", SERRNO);
 | 
					 | 
				
			||||||
	if((s = open(pts, O_RDWR | O_NOCTTY)) < 0)
 | 
					 | 
				
			||||||
		die("Couldn't open slave: %s\n", SERRNO);
 | 
					 | 
				
			||||||
	fcntl(s, F_SETFL, O_NDELAY);
 | 
					 | 
				
			||||||
	switch(pid = fork()) {
 | 
						switch(pid = fork()) {
 | 
				
			||||||
	case -1:
 | 
						case -1:
 | 
				
			||||||
		die("fork failed\n");
 | 
							die("fork failed\n");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue