# This makefile builds APC, the Asset Package Compiler for Henge, on the system.
################################################################################
# Driver sources
-DRIVERS ?= apc testapc
+DRIVERS ?= apc testapc testston
# Debug Level
DEBUG ?= 1
ldSRC := $(filter-out $(DRIVERS:%=\%/%.o),$(cTRG))
cTRG += $(cTRG:%.o=%-d.o)
ldTRG := $(DRIVERS:%=%-d) $(DRIVERS)
-ldDEP = $(filter %/$1.o,$(cTRG)) $(if $(filter %-d,$1),$(ldSRC:%.o=%-d.o),$(ldSRC))
+ldDEP = $(filter %/$1.o,$(cTRG))
+ldDEP += $(if $(filter testston%,$1),,$(if $(filter %-d,$1),$(ldSRC:%.o=%-d.o),$(ldSRC)))
# Determine if '1' is newer than '2'
-TSTAMP = $(if $(wildcard $1),$(shell stat -c %Y $1),0$(info nots: $1))
+TSTAMP = $(if $(wildcard $1),$(shell stat -c %Y $1),)
NEWER = $(eval 4 := $(call TSTAMP,$(dir $2)$1))
NEWER += $(eval 5 := $(call TSTAMP,$2))
NEWER += $(if $(filter $5,$(firstword $(sort $4 $5))),$1,$2)
--- /dev/null
+#include "../ston/ston.h"
+#include <stdlib.h> //malloc
+#include <stdio.h> //print
+
+int main(int argc, char* argv[])
+{ ston_ht ht;
+ uint32_t* htval;
+
+ if ((ht = ston_ht32_new(2,1,0,malloc)) == NULL)
+ fprintf(stderr,"Could not allocate ht32\n");
+ ston_ht32_insertx(ht,50,1,200);
+ htval = ston_ht32_entry(ht,50,1);
+ printf("[50][1] = %i\n",*htval);
+ free(ht);
+ return 0;
+}
#ifndef STON_FUNC
#define STON_FUNC STON_FUNC_STATIC STON_FUNC_INLINE
#endif //STON_FUNC
-#ifndef STON_NOSTDIO
+#ifdef STON_HT_FREAD
#include <stdio.h>
#include <string.h> //memcpy
+#include <errno.h>
#include <alloca.h>
-#endif //STON_NOSTDIO
+STON_FUNC_STATIC
+STON_FUNC_NOINLINE
+ston_ht ston_ht32_fread(FILE*,long,void*(*)(size_t));
+#else
+#include <stddef.h>
+#endif //STON_HT_FREAD
#include <stdint.h>
/* STON Hashtable Structure
Hashtables are stored as dynamically sized two dimensional arrays
STON_FUNC
size_t ston_up2pow(size_t);
-STON_FUNC_STATIC
-STON_FUNC_NOINLINE
-ston_ht ston_ht32_fread(FILE*,long,void*(*)(size_t));
STON_FUNC
ston_ht ston_ht32_create(uint16_t,size_t,uint8_t,void*(*)(size_t));
STON_FUNC
STON_FUNC
uint32_t ston_ht32_insert(ston_ht,uint32_t,uint16_t,uint32_t);
-#define ston_ht32_new(_COL,_N,_F,_FN) ston_ht32_create(_COLS,ston_up2pow(_N << 1),_F,_FN)
+#define ston_ht32_new(_COL,_N,_F,_FN) ston_ht32_create(_COL,ston_up2pow(_N << 1),_F,_FN)
#define ston_ht32_entry(_HT,_KEY,_COL) (ston_ht32_row(_HT,_KEY) + _COL)
#define ston_ht32_insertx(_HT,_KEY,_COL,_VAL) *ston_ht32_entry(_HT,_KEY,_COL) = _VAL
#define ston_ht_size(_HT) ((_HT)->ht_columns << (_HT)->ht_2pow)
return ht;
}
-#ifndef STON_NO_STDIO
+#ifdef STON_HT_FREAD
/* Reads a 32-bit hash table out of the provided file at the provide fpos, into
a buffer allocated by alloc_fn. Memory is allocated to the stack until the
entire structure is verified, and all file operations are finished.