From 430ce2a8749eb90ca0f8cdf18f5b217128c43e79 Mon Sep 17 00:00:00 2001 From: norly Date: Fri, 15 Feb 2013 01:19:41 +0000 Subject: [PATCH] Better file structure and build system Also fix some warnings --- .gitignore | 10 ++-- Makefile | 61 ++++++++++++++++++---- devstatus.sh | 6 --- config.h => include/config.h | 0 {statuses => include/status}/battery.h | 0 {statuses => include/status}/cpuusage.h | 0 {statuses => include/status}/datetime.h | 0 {statuses => include/status}/fan.h | 0 {statuses => include/status}/memusage.h | 0 {statuses => include/status}/netif.h | 0 {statuses => include/status}/temp.h | 0 {statuses => include/status}/uptime.h | 0 {statuses => include/status}/volume_alsa.h | 0 {statuses => include}/tools.h | 0 runstatus.sh | 2 +- {statuses => src/status}/battery.c | 13 ++--- {statuses => src/status}/cpuusage.c | 5 +- {statuses => src/status}/datetime.c | 6 ++- {statuses => src/status}/fan.c | 6 ++- {statuses => src/status}/memusage.c | 4 +- {statuses => src/status}/netif.c | 5 +- {statuses => src/status}/temp.c | 6 ++- {statuses => src/status}/uptime.c | 7 +-- {statuses => src/status}/volume_alsa.c | 4 +- sysstatus.c => src/sysstatus.c | 19 +++---- {statuses => src/tools}/tools.c | 0 statuses/Makefile | 10 ---- 27 files changed, 100 insertions(+), 64 deletions(-) delete mode 100755 devstatus.sh rename config.h => include/config.h (100%) rename {statuses => include/status}/battery.h (100%) rename {statuses => include/status}/cpuusage.h (100%) rename {statuses => include/status}/datetime.h (100%) rename {statuses => include/status}/fan.h (100%) rename {statuses => include/status}/memusage.h (100%) rename {statuses => include/status}/netif.h (100%) rename {statuses => include/status}/temp.h (100%) rename {statuses => include/status}/uptime.h (100%) rename {statuses => include/status}/volume_alsa.h (100%) rename {statuses => include}/tools.h (100%) rename {statuses => src/status}/battery.c (91%) rename {statuses => src/status}/cpuusage.c (97%) rename {statuses => src/status}/datetime.c (91%) rename {statuses => src/status}/fan.c (91%) rename {statuses => src/status}/memusage.c (96%) rename {statuses => src/status}/netif.c (97%) rename {statuses => src/status}/temp.c (92%) rename {statuses => src/status}/uptime.c (93%) rename {statuses => src/status}/volume_alsa.c (97%) rename sysstatus.c => src/sysstatus.c (78%) rename {statuses => src/tools}/tools.c (100%) delete mode 100644 statuses/Makefile diff --git a/.gitignore b/.gitignore index ae83cfe..5e13ff3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -audstatus/* -bitmaps/* -*.log -*.o -sysstatus +/audstatus +/bitmaps +/build +.log +.o diff --git a/Makefile b/Makefile index c7d3355..eda1d28 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,55 @@ -CC=gcc -CCFLAGS=-Wall -Wextra -O3 -LDOUT=sysstatus -LIBS=-lasound +PROJ := sysstatus -sysstatus: *.c *.h Makefile - make -C statuses - $(CC) $(CCFLAGS) -o $(LDOUT) $(LIBS) sysstatus.c statuses/*.o +LIBRARIES := alsa +BUILDDIR := build +INCLUDEDIR := include +SRCDIR := src + +EXE := $(BUILDDIR)/$(PROJ) +HEADERS := $(shell find $(INCLUDEDIR)/ -iname "*.h") +HEADERS += $(shell find $(SRCDIR)/ -iname "*.h") + +INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR) $(SRCDIR)) +CFLAGS := -O3 -Wall -Wextra +LDFLAGS := + +SOURCES := $(shell find $(SRCDIR)/ -iname "*.c") +OBJS := $(patsubst %.c, $(BUILDDIR)/%.o, $(SOURCES)) + +INCLUDES += $(shell pkg-config --cflags-only-I $(LIBRARIES)) +CFLAGS += $(shell pkg-config --cflags-only-other $(LIBRARIES)) +LDFLAGS += $(shell pkg-config --libs $(LIBRARIES)) + + + +.PHONY: default +default: $(EXE) + + +.PHONY: debug +debug: $(EXE) + gdb $(EXE) $(shell ps -e | sed "s/^ *\([0-9]\+\) .*$(PROJ).*$$/\1/g;te;d;:e") + + +$(EXE): $(OBJS) + @if [ ! -d $(BUILDDIR) ] ; then echo "Error: Build dir '$(BUILDDIR)' does not exist." ; false ; fi + gcc -o $@ $^ $(LDFLAGS) + + +$(BUILDDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.c $(HEADERS) + @if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi + gcc $(INCLUDES) $(CFLAGS) -c -o $@ $< + + +.PHONY: clean clean: - make -C statuses clean - rm -f sysstatus + rm -f $(STATICLIB) + rm -f $(OBJS) + rm -rf $(BUILDDIR)/ + + +.PHONY: distclean +distclean: clean + find . -xdev -name "*~" -exec rm {} \; + find . -xdev -name "core" -exec rm {} \; diff --git a/devstatus.sh b/devstatus.sh deleted file mode 100755 index e78c3f4..0000000 --- a/devstatus.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -cd ~/sysstatus/ -make - -./runstatus.sh diff --git a/config.h b/include/config.h similarity index 100% rename from config.h rename to include/config.h diff --git a/statuses/battery.h b/include/status/battery.h similarity index 100% rename from statuses/battery.h rename to include/status/battery.h diff --git a/statuses/cpuusage.h b/include/status/cpuusage.h similarity index 100% rename from statuses/cpuusage.h rename to include/status/cpuusage.h diff --git a/statuses/datetime.h b/include/status/datetime.h similarity index 100% rename from statuses/datetime.h rename to include/status/datetime.h diff --git a/statuses/fan.h b/include/status/fan.h similarity index 100% rename from statuses/fan.h rename to include/status/fan.h diff --git a/statuses/memusage.h b/include/status/memusage.h similarity index 100% rename from statuses/memusage.h rename to include/status/memusage.h diff --git a/statuses/netif.h b/include/status/netif.h similarity index 100% rename from statuses/netif.h rename to include/status/netif.h diff --git a/statuses/temp.h b/include/status/temp.h similarity index 100% rename from statuses/temp.h rename to include/status/temp.h diff --git a/statuses/uptime.h b/include/status/uptime.h similarity index 100% rename from statuses/uptime.h rename to include/status/uptime.h diff --git a/statuses/volume_alsa.h b/include/status/volume_alsa.h similarity index 100% rename from statuses/volume_alsa.h rename to include/status/volume_alsa.h diff --git a/statuses/tools.h b/include/tools.h similarity index 100% rename from statuses/tools.h rename to include/tools.h diff --git a/runstatus.sh b/runstatus.sh index c279115..b16eebb 100755 --- a/runstatus.sh +++ b/runstatus.sh @@ -15,5 +15,5 @@ fi cd ~/sysstatus/ killall sysstatus -./sysstatus | dzen2 -ta l -fn "$FONT" -bg black -w $((RESX)) -y $((RESY+82)) -h 18 -ta r -expand left -e "" +./build/sysstatus | dzen2 -ta l -fn "$FONT" -bg black -w $((RESX)) -y $((RESY+82)) -h 18 -ta r -expand left -e "" #./sysstatus | tee /dev/shm/sysstatus-log | dzen2 -ta l -fn "$FONT" -bg black -y $((RESY+82)) -h 18 -ta r -expand left -e "" diff --git a/statuses/battery.c b/src/status/battery.c similarity index 91% rename from statuses/battery.c rename to src/status/battery.c index 5375ea1..34bfcc0 100644 --- a/statuses/battery.c +++ b/src/status/battery.c @@ -1,8 +1,10 @@ #include #include #include -#include "string.h" -#include "battery.h" +#include + +#include "status/battery.h" +#include "tools.h" #ifndef POWER_BASEDIR #define POWER_BASEDIR "/sys/class/power_supply/" @@ -21,7 +23,6 @@ void status_battery(char *batname) int chargeFull = -1; int chargePercent = -1; int battW = 1; - int battV = 0; float battTime = -1; @@ -63,12 +64,6 @@ void status_battery(char *batname) battW = atoi(stline); } - strcpy(&batpath[batpathlen], "/voltage_now"); - stlen = fileRead(stline, sizeof(stline), batpath); - if (stlen > 0) { - battV = atoi(stline); - } - /* Prettyprint */ if (chargeFull > 0) { diff --git a/statuses/cpuusage.c b/src/status/cpuusage.c similarity index 97% rename from statuses/cpuusage.c rename to src/status/cpuusage.c index 355f6bb..1bb34ae 100644 --- a/statuses/cpuusage.c +++ b/src/status/cpuusage.c @@ -2,8 +2,9 @@ #include #include #include -#include "cpuusage.h" -#include "../config.h" + +#include "status/cpuusage.h" +#include "config.h" #ifndef NUM_CPUS #define NUM_CPUS 1 diff --git a/statuses/datetime.c b/src/status/datetime.c similarity index 91% rename from statuses/datetime.c rename to src/status/datetime.c index abcc07b..a25d411 100644 --- a/statuses/datetime.c +++ b/src/status/datetime.c @@ -1,7 +1,9 @@ #include #include -#include "datetime.h" -#include "../config.h" + +#include "status/datetime.h" +#include "config.h" + void status_datetime() { diff --git a/statuses/fan.c b/src/status/fan.c similarity index 91% rename from statuses/fan.c rename to src/status/fan.c index 84cfa90..0e7cfdf 100644 --- a/statuses/fan.c +++ b/src/status/fan.c @@ -1,12 +1,14 @@ #include #include #include -#include "fan.h" + +#include "status/fan.h" +#include "tools.h" + void status_fan(char *title, char *sysfile) { char stline[16]; - int stfile; ssize_t stlen; stlen = fileRead(stline, sizeof(stline), sysfile); diff --git a/statuses/memusage.c b/src/status/memusage.c similarity index 96% rename from statuses/memusage.c rename to src/status/memusage.c index ea41134..6a6cb21 100644 --- a/statuses/memusage.c +++ b/src/status/memusage.c @@ -1,8 +1,10 @@ #include #include -#include "memusage.h" + +#include "status/memusage.h" #include "tools.h" + void status_memusage() { char *stline = NULL; diff --git a/statuses/netif.c b/src/status/netif.c similarity index 97% rename from statuses/netif.c rename to src/status/netif.c index 581d279..23e6520 100644 --- a/statuses/netif.c +++ b/src/status/netif.c @@ -2,9 +2,10 @@ #include #include #include -#include "netif.h" + +#include "status/netif.h" #include "tools.h" -#include "../config.h" +#include "config.h" #ifndef NETIF_BASEDIR #define NETIF_BASEDIR "/sys/class/net/" diff --git a/statuses/temp.c b/src/status/temp.c similarity index 92% rename from statuses/temp.c rename to src/status/temp.c index f2cece8..e6763d0 100644 --- a/statuses/temp.c +++ b/src/status/temp.c @@ -1,12 +1,14 @@ #include #include #include -#include "temp.h" + +#include "status/temp.h" +#include "tools.h" + void status_temp(char *title, char *sysfile) { char stline[16]; - int stfile; ssize_t stlen; stlen = fileRead(stline, sizeof(stline), sysfile); diff --git a/statuses/uptime.c b/src/status/uptime.c similarity index 93% rename from statuses/uptime.c rename to src/status/uptime.c index fba6a6f..106051c 100644 --- a/statuses/uptime.c +++ b/src/status/uptime.c @@ -2,13 +2,14 @@ #include #include #include -#include "uptime.h" -#include "../config.h" + +#include "status/uptime.h" +#include "tools.h" +#include "config.h" void status_uptime() { char stline[16]; - int stfile; ssize_t stlen; int i; int upts, uptm, upth, uptd; diff --git a/statuses/volume_alsa.c b/src/status/volume_alsa.c similarity index 97% rename from statuses/volume_alsa.c rename to src/status/volume_alsa.c index 5d648c5..41f61b8 100644 --- a/statuses/volume_alsa.c +++ b/src/status/volume_alsa.c @@ -1,5 +1,7 @@ #include -#include "volume_alsa.h" + +#include "status/volume_alsa.h" + int status_volume_alsa(char *cardname, char *mixername, snd_mixer_selem_channel_id_t channel) { diff --git a/sysstatus.c b/src/sysstatus.c similarity index 78% rename from sysstatus.c rename to src/sysstatus.c index 9628b17..bbc945b 100644 --- a/sysstatus.c +++ b/src/sysstatus.c @@ -1,15 +1,16 @@ #include #include + #include "config.h" -#include "statuses/battery.h" -#include "statuses/cpuusage.h" -#include "statuses/datetime.h" -#include "statuses/fan.h" -#include "statuses/memusage.h" -#include "statuses/netif.h" -#include "statuses/volume_alsa.h" -#include "statuses/temp.h" -#include "statuses/uptime.h" +#include "status/battery.h" +#include "status/cpuusage.h" +#include "status/datetime.h" +#include "status/fan.h" +#include "status/memusage.h" +#include "status/netif.h" +#include "status/volume_alsa.h" +#include "status/temp.h" +#include "status/uptime.h" void updatestatus() diff --git a/statuses/tools.c b/src/tools/tools.c similarity index 100% rename from statuses/tools.c rename to src/tools/tools.c diff --git a/statuses/Makefile b/statuses/Makefile deleted file mode 100644 index fc60af6..0000000 --- a/statuses/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -STATUSES=battery.o cpuusage.o datetime.o fan.o memusage.o netif.o temp.o uptime.o volume_alsa.o -OTHERS=tools.o - -all: *.c *.h ../config.h Makefile $(STATUSES) $(OTHERS) - -.c.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -clean: - rm -f *.o -- 2.30.2